Как получить только время от даты до времени C # - PullRequest
119 голосов
/ 22 июня 2009

Предположим, у меня есть значение 22.06.2009 10:00:00. Как получить только 10:00 утра с этой даты.

Ответы [ 15 ]

167 голосов
/ 22 июня 2009

У вас есть много вариантов для этого:

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 ()

66 голосов
/ 22 июня 2009

Из DateTime вы можете использовать .TimeOfDay - но это дает вам TimeSpan, представляющее время дня (10 часов).

48 голосов
/ 26 февраля 2014

В C # есть только тип DateTime, и он состоит из части даты и времени. Если вас не волнует часть Date в DateTime, установите для нее значение по умолчанию, например:

DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)

Таким образом, вы можете быть согласованными во всех версиях .NET, даже если Microsoft решит изменить базовую дату на что-то еще, кроме 01.01.0001.

21 голосов
/ 22 июня 2009

Возможно, вы захотите изучить метод DateTime.ToShortTimeString () .

Кроме того, существует множество других методов и свойств объекта DateTime , которые могут помочь вам в форматировании даты или времени любым удобным вам способом. Просто взгляните на документацию.

10 голосов
/ 14 октября 2016

Попробуйте это:

TimeSpan TodayTime = DateTime.Now.TimeOfDay;
6 голосов
/ 18 декабря 2014

Вы можете использовать следующий код:

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
6 голосов
/ 10 апреля 2012

Есть разные способы сделать это. Вы можете использовать DateTime.Now.ToLongTimeString(), который возвращает только время в строковом формате.

4 голосов
/ 02 января 2019
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
4 голосов
/ 30 ноября 2017

Вы можете использовать это

lblTime.Text = DateTime.Now.TimeOfDay.ToString(); 

В режиме реального времени со значением в миллисекундах устанавливается только время.

4 голосов
/ 01 сентября 2014

Вы можете просто написать

string time = dateTimeObect.ToString("HH:mm");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...