Предположим, у меня есть значение 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
секунды без
Из a DateTime
вы можете использовать .TimeOfDay
- но это дает вам TimeSpan
представление о времени дня (10 часов).
В C # есть только тип DateTime, который состоит как из даты, так и из времени. Если вам не важна часть Date в 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
Если вы хотите сравнить время, а не даты, у вас может быть просто стандартная дата сравнения или совпадение с датой, которую вы используете, как в ...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Могут быть лучшие способы сделать это, но ваши даты должны совпадать.
если вы используете 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 Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}