2015-02-23 15 views
5

Come posso analizzare una stringa come questa: "2/22/2015 9:54:02 AM" a un'istanza DateTime?come convertire una stringa contenente AM/PM in DateTime?

Attualmente sto usando il metodo DateTime.ParseExact ma senza l'AM/PM cioè:

DateTime.ParseExact("2/22/2015 9:54:02", "M/dd/yyyy HH:mm:ss") 

Mi piacerebbe essere in grado di analizzare i segnali AM/PM pure.

+2

https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx – Ako

risposta

11

Si dovrebbe cambiare il formato ora (H) in lettere minuscole simili:

DateTime.ParseExact("2/22/2015 9:54:02 AM", "M/d/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 

maiuscola "H" indica un tempo di 24 ore e minuscole "h" indica il tempo di 12 ore e rispetterà la AM/PM nella stringa candidata.

4

È possibile utilizzare l'identificatore tt:

DateTime.ParseExact(
    "2/22/2015 9:54:02 PM", 
    "M/dd/yyyy h:mm:ss tt", 
    CultureInfo.InvariantCulture 
) 

Tuttavia essere avvertito questo può essere specifico locale. Anche HH si riferisce all'orologio a 24 ore, con AM/PM in genere si utilizza l'orologio a 12 ore, quindi si consiglia di utilizzare hh o solo h per quello.

+0

Questa funzione non prendere 2 argomenti – Fazal

+0

@ Fazal Hai ragione. Fisso. – Lloyd

2

Try This,

DateTime.ParseExact("2/22/2015 9:54:02 PM", "M/dd/yyyy h:mm:ss tt", CultureInfo.InvariantCulture); 
Problemi correlati