Convertire data in DateTime indipendentemente dalla lingua

mercoledì 30 dicembre 2015 - 17.06
Tag Elenco Tags  C#  |  .NET 4.0

svipla Profilo | Senior Member

Ciao a tutti

Come posso convertire una data in formato stringa in un DateTime indipendentemente dalla lingua in uso nel sito?

Ora faccio così:

public static DateTime FormatoDateTimeLingua(string datetime_italiano)
{
CultureInfo itIT = new CultureInfo("it-IT");
DateTime dateValue;

DateTime.TryParseExact(datetime_italiano.Replace(".", "/").Replace(" 0:00:00", " 00:00:00"), "dd/MM/yyyy HH:mm:ss", itIT, DateTimeStyles.None, out dateValue);
return dateValue;
}

Ma se ho
- la lingua inglese selezionata
- leggo dal db '2015-0-15 00:00:00'
- Converti.toDateTime(dRead["valida_dal"].ToString()), datetime_italiano diventa uguale a ''12/22/2015 12:00:00 AM"

ho come risultato: 1/1/0001 12:00:00 AM e questo è sbagliato. Il risultato dovrebbe essere un DateTime in formato italiano

Grazie mille

Gluck74 Profilo | Guru

Devi stabilire con che formato la data viene salvata sul Database. Se leggi il campo con il formato MM/GG/AAAA, allora quando converti devi specificare tale formato.
Ti consiglio di utilizzare il metodo TryParseExact in questo modo:

DateTime dt; if (DateTime.TryParseExact("24/01/2013", //o qualsiasi stringa tu leggi dal database "d/M/yyyy", //specifica il formato esatto che leggi dal database CultureInfo.InvariantCulture, DateTimeStyles.None, out dt)) { //valid date } else { //invalid date }
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5