si dovrebbe essere specificare quale la cultura che si desidera utilizzare ogni volta che si converte una stringa in una data.
La cultura si dovrebbe utilizzare dipende da ciò che la cultura le date sono formattati come.Ad esempio, se tutte le date si sta parsing sono formattati come slovacca:
String s = "24. 10. 2011";
allora avete bisogno di analizzare la stringa come se fosse in Slovacca (Slovacchia) (sk-SK
) cultura:
//Bad:
d = DateTime.Parse(s);
//Good:
d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("sk-SK")); //Slovak (Slovakia)
Se sono tutte le date in tagika (Tagikistan cirillico), allora avete bisogno di analizzare come tg-Cryl-Tj
:
String s = "24.10.11"
DateTime d = DateTime.Parse(s, CultureInfo.CreateSpecificCulture("tg-Cryl-Tj"));
che porta alla domanda: che cosa formato della data stai usando? Non dovresti affidarti alle impostazioni locali del server, dovresti decidere quale formato desideri.
//Bad
String s = d.ToString();
//Good
String s = d.ToString(CultureInfo.CreateSpecificCulture("si-LK")); //Sinhala (Sri Lanka)
//s = "2011-10-24 12:00:00 පෙ.ව."
sospetto che preferiate fare tutto in inglese. Ma poi si deve decidere quale variante della lingua inglese:
en-AU
(Inglese Austrailia): 24/10/2011
en-IA
(Inglese India): 24-10-2011
en-ZA
(inglese Sud Africa): 2011/10/24
en-US
(Inglese Stati Uniti): 10/24/2011
ho il sospetto che tu preferisco inglese (India) (en-IA
).
Ma se davvero non si può decidere quale cultura da usare per la conversione date in stringhe e viceversa, e le date non sono mai destinate ad essere mostrato a un utente, quindi è possibile utilizzare il invariante Cultura:
String s = "10/24/2011" //invariant culture formatted date
d = DateTime.Parse(s, CultureInfo.InvariantCulture); //parse invariant culture date
s = d.ToString(CultureInfo.InvariantCulture); //convert to invariant culture string
per la persona che ha votato per chiudere perché "è difficile dire ciò che viene chiesto qui": che cosa sta confondendo si? –