Как изменить формат времени в VB.NET с 24 на 12?

#vb.net #time #format

#vb.net #время #формат

Вопрос:

Я использую эти коды для отображения времени в VB.NET он отображается в формате 24 часов, кроме того, мне это нужно в формате 12 часов

 System.DateTime.Now.Hour
System.DateTime.Now.Minute
System.DateTime.Now.Second
  

пример:

 14:12:42
  

Мне это нужно как :

 02:12:42
  

Спасибо.

Ответ №1:

Используйте строку.Формат. Например:

 String.Format("{0:T}", System.DateTime.Now)           //02:12:42 PM
String.Format("{0:hh:mm:ss}", System.DateTime.Now)    //02:12:42
String.Format("{0:hh:mm:ss tt}", System.DateTime.Now) //02:12:42 PM
  

Кроме того, этот веб-сайт будет очень полезен в обобщении различных способов использования String.Формат. Имейте в виду, что культура может повлиять на нестандартные форматы. Первый приведенный выше пример использования T (формат длительного времени) отлично работает на моем компьютере в США. Но если вы скажете:

 String.Format(System.Globalization.CultureInfo.InvariantCulture, _
              "{0:T}", System.DateTime.Now)
  

В итоге получается 14:12:42. Последние два примера являются пользовательскими форматами и не зависят от культуры.

Ответ №2:

При использовании объектов DateTime вы можете фактически использовать метод toString () и установить свой формат внутри него.

 string currentTime = System.DateTime.Now.ToString("hh:mm:ss");
  

Ознакомьтесь с этой статьей msdn для большей ясности:

http://msdn.microsoft.com/en-us/library/zdtaw1bw.aspx

Ответ №3:

Используйте соответствующую строку формата для отображения.

 string formatted = myDateTime.ToString("hh:mm:ss");
  

В этом случае я использовал строку пользовательского формата.

Комментарии:

1. В верхнем регистре MM будет возвращен месяц.

Ответ №4:

1-Используйте регулярное выражение, чтобы получить первые два символа этой строки, т. е. с 23: 11:59 получите 23

2-преобразуйте это число в целочисленный тип

3-теперь проверьте, не больше ли оно 12, и если оно есть, вычтите из него 12 и с помощью string.replace замените старое значение.

Ответ №5:

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

   Dim CurTime As String
  CurTime = TimeOfDay.ToString("h:mm:ss tt")