String was not recognized as a valid DateTime

martedì 15 settembre 2009 - 16.28

paquito_ita Profilo | Senior Member

Ciao,
devo convertire una stringa in un DateTime:

string data = "14.09.2009 16:26:00"; DateTime sessionStart = Convert.ToDateTime(data)

Ma ottengo un' eccezione: "String was not recognized as a valid DateTime".
Come posso fare per convertire tale stringa in un dateTime, senza dovermi preoccupare del formato?

Grazie

samar Profilo | Senior Member

In rete ho trovato questo esempio che potrebbe indicarti la strada giusta da prendere...

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Ciao

paquito_ita Profilo | Senior Member

Grazie per il consiglio, mi servirebbe avere anche il "time".

posso aggiungerlo al format cosi': "dMMMyyyy hh:mm:ss" ?

Grazie

samar Profilo | Senior Member

Direi di si, fai prima a provare

paquito_ita Profilo | Senior Member

Ho provato con il codice che mi hai postato Samar, tuttavia l'eccezione si ripresenta.

Quello che è strano è che se faccio il debugging dell'applicazione web usando Firefox, nessuna eccezione (anche con il mio codice iniziale), mentre se uso Safari (per windows) si presenta tale eccezione.
In Safari le date nelle stesse label sono rappresentate in modo differente: "Tuesday, September 15, 2009, from 8:51 AM to 9:51 AM" mentre in Firefox: "martedì 15 settembre 2009, from 16.44 to 17.44"

Come posso fare in modo da evitare eccezioni del genere?

samar Profilo | Senior Member

Fai una prova sostituendo "CurrentCulture" con "CurrentUICulture", ma non sono sicuro che sia la soluzione, adesso non ho tempo di fare test, fammi sapere...

Quello sopra non influisce per niente, lascia stare...
volevo chiederti come ricavi la stringa da convertire, la prendi da un db? la ricavi in qualche modo?

paquito_ita Profilo | Senior Member

Ho provato con "CultureInfo.CurrentUICulture", ma il problema persiste.
La cultura è: {en-US}, mentre la data che viene passata è nel formato: "17.09.2009 15:20:00", per cui non viene riconosciuta come valida. Ho provato a fare una sostituzione dei "." con "/" ottenendo "17/09/2009 15:20:00", ma ancora la stessa eccezione.

Se anche tuttavia funzionasse non sarebbe una buona soluzione, poiché cambiando server, per esempio, il codice non funzionerebbe più con una diversa cultura come {JP}.

Qualche consiglio?
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5