Припустимо, я маю значення 22.06.2009 10:00:00. Як мені отримати лише 10:00 ранку з цього часу.
Припустимо, я маю значення 22.06.2009 10:00:00. Як мені отримати лише 10:00 ранку з цього часу.
Відповіді:
Для цього у вас є багато варіантів:
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
Корисне посилання: Шаблони DateTime.ToString ()
ss
це секунди з s
З а DateTime
, ви можете використовувати .TimeOfDay
- але це дає вам , TimeSpan
що представляє час в день (10 годин).
У C # є лише тип DateTime, який складається з частини дати та часу. Якщо вас не хвилює частина дати DateTime, встановіть її за замовчуванням, наприклад, таким:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
Таким чином ви можете бути послідовними у всіх версіях .NET, навіть якщо Microsoft вирішить змінити базову дату на щось інше, ніж 1/1/0001.
Ви можете вивчити метод DateTime.ToShortTimeString () .
Також існує багато інших методів та властивостей об’єкта DateTime, які можуть допомогти вам у формуванні дати чи часу будь-яким способом, який вам подобається. Просто погляньте на документацію.
Спробуйте це:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Існують різні способи зробити це. Ви можете використовувати, DateTime.Now.ToLongTimeString()
який повертає лише час у форматі рядка.
DateTime.ToLongTimeString()
а не DateTime.Now.ToLongTimeString()
. Зважаючи на вік цієї нитки, краще не відроджувати її, якщо відповідь не сприятиме значному поліпшенню порівняно з попередніми відповідями.
Можна просто написати
string time = dateTimeObect.ToString("HH:mm");
Ви можете використовувати це
lblTime.Text = DateTime.Now.TimeOfDay.ToString();
Це в режимі реального часу зі значенням мілісекунд, і він встановлює лише час.
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
якщо ви використовуєте gridview, ви можете показувати лише час із DataFormatString="{0:t}"
прикладом:
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}"/>
Якщо ви хочете порівняти часи, а не дати, ви можете просто встановити стандартну дату порівняння або відповідати даті, яку ви використовуєте, як у ...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Можливо, існують і кращі способи цього, але всі дати відповідають вашим датам.
Вам також потрібно обліковувати DateTime Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}