Мне нужно отправить параметр строки запроса на наш сервер API, который принимает время в формате GMT.
Я немного озадачен тем, какие значения мне нужно отправлять в летнее время, поскольку даты в формате GMT.
Давайте предположим, что мы находимся в Лондоне (Великобритания), это 3 часа дня, и это 15 мая
2016.
Правильное значение даты:
?date=2016-05-15T15:00:00Z
или же
?date=2016-05-15T15:00:00+01:00
или же
?date=2016-05-15T16:00:00Z (assuming I always want to use the Z "Zulu Time")
Поскольку в этот день Лондон находится в BST, то 2016-05-15T15:00:00+01:00
будет наиболее полно квалифицированной правильной формы.
Если бы вы нормализовали это к UTC, то это стало бы 2016-05-15T14:00:00Z
, Z
эквивалентно +00:00
, поэтому вы должны отрегулировать час с точностью до исходного смещения.
2016-05-15T15:00:00Z
неверно, так как это через час.
Относительно того, какая из двух правильных форм является более правильной для вашего конкретного API, невозможно ответить на этот вопрос, поскольку вы не предоставили подробных сведений о том, как разработан API, на каком языке он реализован, какой код анализирует ввод и т. Д. Многие случаи, либо будут приняты. Однако если API требует знать местное время, а также универсальное время, то только 2016-05-15T15:00:00+01:00
Ибо передал бы оба.
Кроме того, признал, что нет такого понятия, как «формат GMT». GMT — часовой пояс, эквивалентный UTC + 00: 00. Здесь у вас есть строка ISO8601 расширенный формат, также указанный в RFC3339. Обычно это «формат ISO».
Других решений пока нет …