TekVanDo
@TekVanDo
Javascript Developer

Как привести Date обьект js в DateTime формат C#?

Использую api cotroller, в него в json приходит "2014-06-18T20:00:00.000Z", что в js == Date {Thu Jun 19 2014 00:00:00 GMT+0400}.
C# же после парсинга json DateTime равен 2014-06-18 вместо 2014-06-19.
  • Вопрос задан
  • 4861 просмотр
Пригласить эксперта
Ответы на вопрос 4
var dateTime = XmlConvert.ToDateTime(@"2014-06-18T20:00:00.000Z", XmlDateTimeSerializationMode.Utc);
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
всему виной часовой пояс. Обменивайтесь датами в UTC.
Ответ написан
@solowk
Если не нужна компонента времени, то лучший вариант:
JS:
date.toDateString(); // тогда данное значение можно будет парсить и на Mono

C#:
DateTime dateFromJS = DateTime.Parse(js_date); // принимаем данные

string dateToJS = DateTime.Now.ToLongDateString(); // отправляем данные
Ответ написан
Комментировать
@kttotto
пофиг на чем писать
К Вам приходит дата с учетом часового пояса. Тип DateTime часовой пояс не учитывает, значит Вы будете терять время при приведении. Если время зависит от локали и часовой пояс необходим, то принимать время нужно в формате DateTimeOffset (ну или приводить к нему, если принимаете строку), тогда время теряться не будет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы