ASP.Net DateTime с CultureInfo - PullRequest
       18

ASP.Net DateTime с CultureInfo

1 голос
/ 02 марта 2011

Один общий вопрос:

Сохраняет ли объект DateTime объект CultureInfo вместе с ним, или вам нужно использовать средство форматирования для форматирования DateTime в соответствии с текущей культурой?

У меня есть свойство класса, которое возвращает DateTime. В этом свойстве я устанавливаю объект DateTime с текущей информацией о культуре, используя объект CultureInfo. Ниже приведен код свойства класса, который я использую:

public DateTime PrintedQuoteDate { 
    get {
        DateTime printQuoteDate = DateTime.Today;
        // cInfo = CultureInfo object                             

        return Convert.ToDateTime(printQuoteDate , cInfo);

    }
}

Поэтому мой вопрос: когда я буду использовать вышеупомянутое свойство в своем коде, будет ли оно иметь соответствующую информацию о культуре, которую я устанавливаю в его методе get, или мне придется использовать тот же код CONVERT для форматирования даты и времени. Здесь есть ограничение: свойство должно возвращать только тип DateTime.

Любая идея, предложения

1 Ответ

1 голос
/ 02 марта 2011

DateTime не хранит ни одну культуру.На самом деле он даже не содержит ссылку на TimeZone, все, что он знает, это UTC DateTime или нет.Это обрабатывается внутренним перечислением.

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

Вы можете получить предварительно определенную культуру, используя коды страны / региона ISO, например:

var us = new CultureInfo("en-US");
var british = new CultureInfo("en-GB");
var danish = new CultureInfo("da");

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

...