Supponiamo che io abbia il valore 22/06/2009 10:00:00. Come posso ottenere solo le 10:00 da questa data.
Supponiamo che io abbia il valore 22/06/2009 10:00:00. Come posso ottenere solo le 10:00 da questa data.
Risposte:
Hai molte opzioni per questo:
DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");
dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock
Link utile: Pattern DateTime.ToString ()
ss
s
Da a DateTime
, puoi usare .TimeOfDay
- ma questo ti dà una TimeSpan
rappresentazione dell'ora del giorno (10 ore).
Esiste solo il tipo DateTime in C # ed è composto sia dalla parte di data che da quella dell'ora. Se non ti interessa la parte Date di DateTime, impostala sul valore predefinito in questo modo:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
In questo modo puoi essere coerente in tutte le versioni di .NET, anche se Microsoft decide di cambiare la data di base in qualcosa di diverso da 1/1/0001.
Potresti voler esaminare il metodo DateTime.ToShortTimeString () .
Inoltre, ci sono molti altri metodi e proprietà sull'oggetto DateTime che possono aiutarti a formulare la data o l'ora nel modo che preferisci. Dai un'occhiata alla documentazione.
Prova questo:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Esistono diversi modi per farlo. È possibile utilizzare DateTime.Now.ToLongTimeString()
quale restituisce solo l'ora in formato stringa.
DateTime.ToLongTimeString()
piuttosto che DateTime.Now.ToLongTimeString()
. Data l'età di questo thread, è meglio non resuscitarlo a meno che la risposta non contribuisca a un miglioramento significativo rispetto alle risposte precedenti.
Puoi semplicemente scrivere
string time = dateTimeObect.ToString("HH:mm");
DateTime now = DateTime.Now;
now.ToLongDateString(); // Wednesday, January 2, 2019
now.ToLongTimeString(); // 2:33:59 PM
now.ToShortDateString(); // 1/2/2019
now.ToShortTimeString(); // 2:16 PM
now.ToString(); // 1/2/2019 2:33:59 PM
se stai usando gridview puoi mostrare solo l'ora con l' DataFormatString="{0:t}"
esempio:
By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>
By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>
Se stai cercando di confrontare i tempi e non le date, potresti semplicemente avere una data di confronto standard o abbinare la data che stai utilizzando, come in ...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Ci possono essere modi migliori per farlo, ma mantiene le date corrispondenti.
Devi tenere conto anche di DateTime Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}