C # DateTime, безопасны ли региональные настройки этого метода? - PullRequest
6 голосов
/ 21 апреля 2010

Я использую следующий метод для сериализации даты в виде строки

private const string DateFormatString = "dd.MM.yyyy HH:mm:ss";
string LastsuccessfuldownloadDateTime = DateTime.Now.AddDays(-91).ToString(DateFormatString);

Это самый безопасный способ убедиться, что строка всегда сериализуется в этом формате?

Обновление на одном сервере У меня это работает, он полностью получает неправильные поля.

Ответы [ 2 ]

9 голосов
/ 21 апреля 2010

Я бы использовал явный инвариант для сериализации, чтобы избежать непредвиденных ошибок. Вы также можете подумать, нужен ли вам UTC или нет; например:

string LastsuccessfuldownloadDateTime = DateTime.UtcNow.AddDays(-91).ToString(
    DateFormatString, CultureInfo.InvariantCulture);
0 голосов
/ 19 марта 2011

Я думаю, что вы должны изменить культуру вашей программы в соответствии с вашими региональными настройками. Тогда все на разных региональных настройках компьютера будет работать нормально.

например, если ваши региональные настройки соответствуют U.S, и вы хотите запустить свою программу на машине с настройкой uk.

Затем измените CurrentCulture вашей программы на США.

Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US");

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