Что именно означают T и Z на отметке времени?

99

У меня есть значение метки времени, возвращаемое веб-службой "2014-09-12T19:34:29Z"

Я знаю, что это означает часовой пояс, но что именно это означает?

И я пытаюсь издеваться над этой веб-службой, так есть ли способ сгенерировать эту временную метку, используя strftimeв python?

Извините, если это до боли очевидно, но Google не очень помог, как и strftime()справочная страница.

В настоящее время я использую это:

x.strftime("%Y-%m-%dT%H:%M:%S%Z")
'2015-03-26T10:58:51'
roymustang86
источник

Ответы:

128

На Tсамом деле ничего не означает. Это просто разделитель, который требуется для комбинированного формата даты и времени ISO 8601 . Вы можете прочитать это как сокращение от времени .

Знак Zозначает нулевой часовой пояс, поскольку он смещен на 0 от всемирного координированного времени (UTC) .

Оба символа представляют собой просто статические буквы в формате, поэтому они не документируются datetime.strftime()методом. Вы могли бы использовать Qили Mили, Monty Pythonи метод также вернул бы их без изменений; метод ищет только шаблоны, начинающиеся с, %чтобы заменить их информацией из datetimeобъекта.

Мартейн Питерс
источник
9
ZНа самом деле стоит за зулу , который является «имя» UTC0. Звучит странно, но у каждого часового пояса есть свое название.
TomCho
19
@TomCho: нет, Zuluэто название фонетического алфавита НАТО Z, и оно используется, потому что часовой пояс - это часовой пояс Ноль. См. Ссылку на Википедию, которую я включил в ответ: время UTC также известно как время «Zulu», поскольку «Zulu» - это кодовое слово алфавита правописания ИКАО для «Z».
Мартейн Питерс
5
@TomCho: похоже, что TimeAndDate имеет это наоборот; Zприходил раньше Zulu, я бы сказал. en.wikipedia.org/wiki/List_of_m military_time_zones представляет интерес, но не дает никакого исторического обоснования использования Z для часового пояса с нулевым смещением, только это Zтак названо Zulu.
Мартейн Питерс
1
+1 Верно, согласен с вами. Странно, что Jв военных зонах не используют букву . Может быть, из-за разного произношения в идиомах вроде немецкого или финского? В любом случае, спасибо, что прояснили ситуацию.
TomCho
4
@TomCho: Zиспользуется для +0000(GMT в то время) с 1950-х годов (до того, как существовало UTC). Насколько я понимаю, Zэто просто буква (вы можете использовать мнемонику Zero и / или произносить ее как Zulu(из широко используемого орфографического алфавита)
jfs