Предположим, что у меня значение 6/22/2009 10:00:00. Как я могу получить только 10:00 утра с этой даты.
Как получить только время с даты-времени С#
Ответ 1
У вас есть много вариантов для этого:
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()
Ответ 2
Из DateTime
вы можете использовать .TimeOfDay
- но это дает вам TimeSpan
, представляющий время в день (10 часов).
Ответ 3
В С# существует только тип DateTime и он состоит из части даты и времени. Если вам не нужна дата Date для DateTime, установите значение по умолчанию следующим образом:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
Таким образом, вы можете быть согласованным во всех версиях .NET, даже если Microsoft решит изменить базовую дату на что-то еще, чем 1/1/0001.
Ответ 4
Возможно, вы захотите изучить метод DateTime.ToShortTimeString().
Кроме того, существует много других методов и свойств объекта DateTime, который может помочь вам в создании даты или времени любым способом, как. Просто взгляните на документацию.
Ответ 5
Попробуйте следующее:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Ответ 6
Существуют разные способы сделать это. Вы можете использовать DateTime.Now.ToLongTimeString()
, который
возвращает только время в строковом формате.
Ответ 7
Вы можете использовать следующий код:
DateTime dt = new DateTime(2009, 6, 22, 10, 0, 0); //Date 6/22/2009 10:00:00 AM
string time = dt.ToString("hh:mm tt"); //Output: 10:00 AM
time = dt.ToString("HH:mm tt"); //Output: 10:00 AM
dt = new DateTime(2009, 6, 22, 22, 0, 0); //Date 6/22/2009 10:00:00 PM
time = dt.ToString("hh:mm tt"); //Output: 10:00 PM
time = dt.ToString("HH:mm tt"); //Output: 22:00 PM
Ответ 8
Вы можете использовать этот
lblTime.Text = DateTime.Now.TimeOfDay.ToString();
Это значение в реальном времени с миллисекундным значением и устанавливается только на время.
Ответ 9
Вы можете просто написать
string time = dateTimeObect.ToString("HH:mm");
Ответ 10
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
Ответ 11
Это работает для меня. Я обнаружил это, когда мне приходилось работать с DateTime.Date, чтобы получить только часть даты.
var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;
Ответ 12
Вы можете использовать ToString("T")
в течение длительного времени или ToString("T")
в течение короткого времени.
Ответ 13
если вы используете 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}"/>
Ответ 14
Если вы хотите сравнить время, а не даты, вы можете просто иметь стандартную дату сравнения или соответствовать дате, которую вы используете, как в...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Там могут быть более эффективные способы, но при этом ваши даты совпадают.
Ответ 15
Вы также должны учитывать DateTime Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}
Ответ 16
Используйте взамен DateTime.TryParse()
Очевидно, что это не полный ответ, а просто дополнение к другим ответам.
Ответ 17
В моем случае это хорошо работает
MyDateTime.ToLongTimeString()
Ответ 18
Легко
DateTime dt = DateTime.Now;
string Timeonly = dt.ToLongTimeString();
Приветствия