Присвойте DateTime.TryParse значение UTC, изменив входное строковое значение.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Присвойте DateTime.TryParse значение UTC, изменив входное строковое значение.

Сообщение Anonymous »

У меня есть файл конфигурации, который запрашивает дату в определенном формате:

Код: Выделить всё

"StartDate": "2017-05-27"
Этот номер используется следующим образом:

Код: Выделить всё

DateTime startDate;
DateTime.TryParse(MyConfig.StartDate, out startDate);
Я понял, что когда это запускалось на серверах, находящихся в разных часовых поясах, возвращаемое значение DateTime может не соответствовать типу UTC и, следовательно, дальнейшие операции с этим DateTime, такие как тики или что-то в этом роде. в противном случае время может быть искажено.

Код: Выделить всё

DateTime startDate;
DateTime.TryParse("2017-05-27", out startDate);

if(startDate.Kind == DateTimeKind.Utc)
{
"Ohhh yeah".Dump();
}
else
{
"EH OH".Dump();
}

startDate.Dump();
Если я изменю строку на «2017-05-27Z», это не приведет к тому, что она будет DateTimeKind.Utc... как он по-прежнему выводит "EH OH", но, что интересно, время, выводимое startDate.Dump(), действительно меняется на час, но его тип не меняется :(.

Как заставить строку конфигурации правильно анализироваться как UTC DateTime (без изменения кода TryParse, я знаю, что у него есть спецификатор типа) — это может быть невозможно, но вот в чем вопрос... так ли это :)

Подробнее здесь: https://stackoverflow.com/questions/443 ... alue-input
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»