Я осваиваюсь на Mac OS, и некоторые из моих скриптов не работают после Linux. В частности, очень интересен один сценарий.
Итак, я пытаюсь преобразовать дату ISO8601 в эпоху Unix. Собственный способ OSX сделать это кажется
$ date -j -f "%FT%TZ" "2015-09-09T13:19:09Z"
Wed 9 Sep 2015 13:19:09 NZST
$ date -j -f "%FT%TZ" "2015-09-09T13:19:09Z" +%s
1441761549
Выглядит нормально, за исключением того, что это неправильный ответ. Это ровно на 12 часов позади реального ответа и моего часового пояса +12, так как облачный часовой пояс влияет на эпоху unix?
И просто проверяю себя
$ docker run -it --rm trusty date -d"2015-09-09T13:19:09Z" +%s
1441804749
те же инструменты на linux дают правильный ответ ...
Я просто хочу понять, что здесь не так - я что-то упускаю или это просто сломанная вещь?
OSX Yosemite 10.10.4
UPD: Несколько дополнительных деталей - я бы предположил, что это разница между date
util, за исключением того, что это не только date
.
Stass-MacBook:~ void$ python -c 'import dateutil.parser; print dateutil.parser.parse("2015-09-09T13:19:09Z").strftime("%s")'
1441761549
Stass-MacBook:~ void$ docker run trusty python -c 'import dateutil.parser; print dateutil.parser.parse("2015-09-09T13:19:09Z").strftime("%s")'
1441804749