@MetroSmurf - ОП, конечно, непонятно, что он хочет делать. Одно из моих любимых ненавистников - слишком рано ходить на струны. У меня был коллега, который преобразовал все в струны - даже двойники и т. Д. Это случайность, ожидающая своего часа. Я бы сказал, не преобразовывайте объекты в строки, пока вы не захотите отобразить объект человеку. А пока держитесь за предметы.
Павел
1
Для справки, ssэто секунды с ведущим нулем и sсекунды без
Beevee
лучший ответ на данный момент
Tk1993 07
76
Из a DateTimeвы можете использовать .TimeOfDay- но это дает вам TimeSpanпредставление о времени дня (10 часов).
или особые случаи с форматированием ToString («коды формата»)
Кенни
62
В C # есть только тип DateTime, который состоит как из даты, так и из времени. Если вам не важна часть Date в DateTime, установите для нее значение по умолчанию, например:
Кроме того, в объекте DateTime есть много других методов и свойств, которые могут помочь вам в формировании даты или времени любым удобным для вас способом. Просто взгляните на документацию.
+1 Это самое чистое решение, если вы работаете в международной среде с требованием локализации вывода времени, поскольку оно возвращает время в том формате, в котором установлена текущая система.
Вы, вероятно, имели в виду, DateTime.ToLongTimeString()а не DateTime.Now.ToLongTimeString(). Учитывая возраст этой цепочки, лучше не воскрешать ее, если только ответ не способствует значительному улучшению по сравнению с предыдущими ответами.
Нет смысла отвечать на этот вопрос, он был задан 9 лет назад. И на этот вопрос уже есть много хороших ответов.
benshabatnoam
Вы не вернете время. Вы должны пересмотреть свой ответ
Yepeekai
@Yepeekai В .NET нет класса Time. Таким образом, экземпляр DateTime без части Date - это один из возможных вариантов. Вы также можете вернуть строку, но можете использовать ее в операциях DateTime. Думаю, вы тоже могли бы рассмотреть TimeSpan.
user3720899 04
imo, «new DateTime (d.TimeOfDay.Ticks)» - самый чистый ответ на данный момент
Ответы:
Для этого есть много вариантов:
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 есть много других методов и свойств, которые могут помочь вам в формировании даты или времени любым удобным для вас способом. Просто взгляните на документацию.
источник
Попробуй это:
источник
Это можно сделать разными способами. Вы можете использовать,
DateTime.Now.ToLongTimeString()
который возвращает только время в строковом формате.источник
DateTime.ToLongTimeString()
а неDateTime.Now.ToLongTimeString()
. Учитывая возраст этой цепочки, лучше не воскрешать ее, если только ответ не способствует значительному улучшению по сравнению с предыдущими ответами.Вы можете просто написать
string time = dateTimeObect.ToString("HH:mm");
источник
Вы можете использовать это
Это в реальном времени со значением в миллисекундах и устанавливается только по времени.
источник
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.Date, чтобы получить только часть даты.
var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM"); var time = wholeDate - wholeDate.Date;
источник
Можно использовать
ToString("T")
как долго, так иToString("t")
непродолжительно.источник
Если вы хотите сравнить время, а не даты, у вас может быть просто стандартная дата сравнения или совпадение с датой, которую вы используете, как в ...
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); }
источник