Domanda

Su un sistema operativo a 32 bit, con un processore Intel, DateTime ad es. 17/02/2009 12:00:00 Si noti che è: mm / GG / aaaa

Su un sistema operativo a 64 bit, con un processore AMD, DateTime ad es. 17-02-2009 00:00:00

Ora, quando provo ad analizzare il primo formato, viene visualizzato un errore sulla seconda piattaforma. Ciò significa che - DateTime.Parse (& Quot; 17/02/2009 12:00:00 & Quot;) - genera un errore - impossibile convertire. considerando che, sulla stessa piattaforma, DateTime.Parse (& Quot; 17/2/2009 12:00:00 & Quot;) funziona! Ciò significa che DD / MM va bene, MM / DD no.

Cosa sta causando questo? Il sistema operativo a 64 bit? Il processore?

Come posso eliminare il problema?

È stato utile?

Soluzione

Gli stessi DateTime non hanno formati. Li analizzi o li formatti in stringhe. (È come i numeri - i numeri interi non sono memorizzati in esadecimali o decimali, sono solo numeri interi. Puoi formattarli in esadecimali o decimali, ma il valore stesso è solo un numero.)

Il formato dipenderà dalla cultura del sistema operativo (o più precisamente, dalla cultura del thread, che è in genere la stessa di quella del sistema operativo).

Personalmente mi piace impostare esplicitamente il formato che utilizzo per l'analisi o la formattazione, a meno che non stia effettivamente mostrando la stringa all'utente e sappia che la cultura è già appropriata.

Altri suggerimenti

Controlla il tuo " Formati di data e ora " tra " Regione e lingua " pannello di controllo.

Inoltre, se vuoi che DateTime generi un formato specifico, non solo chiama ToString (), ma passa un parametro che indica il formato che desideri. Allo stesso modo, se conosci il formato della data che stai chiedendo di analizzare, chiama TryParseExact () e digli il formato che stai fornendo.

Vedi anche Stringhe standard di data e ora di MSDN

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top