Кросс-языковая / кросс-платформенная передача даты и времени - PullRequest
2 голосов
/ 16 сентября 2010

Каков наилучший способ передачи Даты и Времени через.Я использую GWT на стороне клиента / браузера и .NET C Sharp на сервере, и я использую JSON в качестве формата обмена данными.В настоящее время я храню все даты и время на сервере как .NET DateTime.Теперь я заметил, что если я использую GWT DatePicker или DateBox, чтобы выбрать дату и отправить ее на сервер в миллисекундах (выполняя date.getTime ()), где сервер принимает этот параметр как DateTime, я могу видеть смещение на часиз-за BST.У меня есть ситуации, когда мне нужно иметь дату и время в отдельных полях пользовательского интерфейса, и установка времени вместе с правильной датой имеет решающее значение из-за планирования.

Ответы [ 2 ]

3 голосов
/ 18 сентября 2010

Лучший способ обмена значениями даты и времени - это их сериализация в независимые от культуры строки, основанные на UTC, например: 2010-09-18T18: 37: 11. Проблема в том, что операции, связанные с датой и временем, обычно выполняются некорректно ...

Что касается вашей проблемы, я предполагаю, что она появляется во время десериализации времени JSON, то есть .Net обрабатывает это время как локальное (DateTimeKind.Local или DateTimeKind.Unspecified), таким образом, преобразовывая его. Не зная, как с этим справиться, грубая сила, вероятно, будет посылать сериализованную строку, как указано выше, и десериализовать вручную, как это:

DateTime date = DateTime.Parse(dateString, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
1 голос
/ 13 октября 2015

Я бы рекомендовал использовать стандарт, такой как ISO 8601 , для передачи информации о дате и времени в виде строки. В моей компании информация о дате и времени, закодированная в объекте JSON, почти всегда находится в этом формате, например "2015-10-12T18: 41: 11 + 01: 00". Эту строку можно правильно проанализировать и понять на всех клиентах с разными языками программирования (Obj-C, Java, C / C ++).

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