2011-09-13 13 views
7

Ho una stringa come questa "24:00:00" e vorrei convertirla in tempo. Ho provato a convertire e DateTime.Parse ma sembra che abbia bisogno anche di una data. C'è un modo per ottenere il tempo o devo inserire un appuntamento?C# conversione stringa in data

+7

FYI, 24 ore di tempo passano da 0:00:00 a 23:59:59 e 24:00:00 non sarebbero valide. – crashmstr

+0

Date un'occhiata qui: http://stackoverflow.com/questions/4253270/c-how-to-convert-string-into-time-format-used-for-time-range –

risposta

15

Se si è interessati solo al componente orario, considerare l'utilizzo di TimeSpan anziché il valore completo DateTime.

var time = TimeSpan.Parse("23:59:59"); 
+0

So che ci sono alcuni strani formati di date ... ma avere un mese nel bel mezzo è una novità per me ;-) – musefan

+0

Doh! Ho mescolato il mio mese e il mio minuto! rimosso comunque prima che me lo dicessi. –

3

Non sono sicuro che "24:00:00" sarà un orario valido. Qualsiasi modo, non dovrebbe essere necessario per specificare la data, si può fare ...

DateTime time = DateTime.ParseExact("23:59:59", "HH:mm:ss", null); 

Se il vostro tempo è in realtà un momento della giornata, poi vorrei suggerire attaccare con DateTime. Se si sta in realtà utilizza una quantità di tempo (cioè può essere più che 23:59:59) allora si potrebbe utilizzare TimeSpan ...

TimeSpan time = TimeSpan.ParseExact("23:59:59", "HH:mm:ss", null); 

non dimenticare, entrambi hanno una versione TryParseExact se non si è Assicurati di ingresso sarà valida

1

Penso che è necessario TimeSpan.Parse invece?

0

Come su

var time = new DateTime.Today; 
var str = "24:00:00"; 
var split = str.split(":"); 

time.AddHours(Convert.ToInt32(split[0])); 
time.AddMinutes(Convert.ToInt32(split[1])); 
time.AddSeconds(Convert.ToInt32(split[2])); 

Spero che questo aiuti.

2

È possibile utilizzare DateTimeFormatInfo per formattare il DateTime.

string strDate = "23:10:00"; 
DateTimeFormatInfo dtfi = new DateTimeFormatInfo(); 
dtfi.ShortTimePattern = "hh:mm:ss"; 
dtfi.TimeSeparator = ":"; 
DateTime objDate = Convert.ToDateTime(strDate, dtfi); 
Console.WriteLine(objDate.TimeOfDay.ToString()); 
Problemi correlati