Как получить только время с даты-времени С#

Предположим, что у меня значение 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();

Приветствия