datetime в c # как изменить значение по умолчанию на 24 часа? - PullRequest
0 голосов
/ 21 августа 2010

да, то, что возвращено, может быть отформатировано с использованием HH для отображения значения в 24 часа,

, но есть ли способ сделать это возвращаемым значением по умолчанию .?

Ответы [ 4 ]

3 голосов
/ 21 августа 2010

Вместо того, чтобы играть с культурами, создайте метод расширения:

public static class Extensions
{
    public static string To24HourTime(this DateTime dateTime)
    {
        return dateTime.ToString("HH:mm:ss");
    }
}

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

DateTime.Now.To24HourTime();
2 голосов
/ 21 августа 2010

внутреннее представление не имеет значения.Если вы возвращаете DateTime, это будет DateTime.

. Если вы хотите отформатировать DateTime для отображения , то вам нужно использовать строку формата дляотобразите его в любом формате.

См. MSDN для различных пользовательских строк формата времени данных .

DateTime date1; 
date1 = new DateTime(2008, 1, 1, 18, 9, 1);
Console.WriteLine(date1.ToString("hh:mm:ss tt", 
                  CultureInfo.InvariantCulture));
// Displays 06:09:01 PM  

Console.WriteLine(date1.ToString("HH:mm:ss", 
                  CultureInfo.InvariantCulture));
// Displays 18:09:01       
  • Спецификатор формата hh вернется12-часовые часы.
  • Спецификатор формата tt вернет обозначение AM / PM.
  • Спецификатор формата HH вернет 24-часовые часы.

Как и другие пользователи, вы можете изменить культуру потоков на культуру, в которой по умолчанию используется 24 часа, но это также повлияет на форматирование чисел (например, разделителей десятичного разделителя и тысяч).

1 голос
/ 21 августа 2010

Измените CultureInfo в текущем потоке на Культуру, которая по умолчанию имеет 24 часа.

//In Sweden we use 24hrs format.
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("sv-se");

Редактировать: Вы также можете просто изменить формат времени для текущей информации о культуре.

Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern = "HH:mm:ss";
Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortTimePattern = "HH:mm";

//DateTime.ToString() will output something like (en-us culture) 8/21/2010 10:11:37
0 голосов
/ 21 августа 2010

Это зависит от того, на какой культуре работает ваша программа.Проверьте свойства System.Threading.Thread.CurrentThread.CurrentCulture и CurrentUICulture и установите их соответствующим образом.

Тип CultureInfo, помимо прочего, сообщает, как форматируются числа и даты.Вас интересует свойство DateTimeFormat. Если вам нужна специализированная культура, вы можете создать ее и установить для ее DateTimeFormat то, что вам нужно, а затем назначить ее свойству CurrentCulture.

Скорее всего, вы просто хотите выбрать предопределенную культуру.Подробнее здесь: http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx

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