Как изменить формат времени в VB.NET с 24 на 12? - PullRequest
3 голосов
/ 27 апреля 2011

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

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

пример:

14:12:42

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

02:12:42

спасибо.

Ответы [ 5 ]

3 голосов
/ 27 апреля 2011

Использовать String.Format . Например:

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.Format. Имейте в виду, что культура может иметь значение для нестандартных форматов. Первый приведенный выше пример использования T (формат Long Time) отлично работает на моем ПК в США. Но если вы скажете:

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

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

0 голосов
/ 07 сентября 2014

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

  Dim CurTime As String
  CurTime = TimeOfDay.ToString("h:mm:ss tt")
0 голосов
/ 27 апреля 2011

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

.

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

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

0 голосов
/ 27 апреля 2011

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

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

Проверьте эту статью MSDN для большей ясности:

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

0 голосов
/ 27 апреля 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...