我正在适应Mac OS系统,但是我发现一些脚本在从Linux迁移到Mac OS后无法正常工作。其中一个特别有趣的脚本。
因此,我试图将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
更新:
额外的细节-我建议这是一个date
实用程序之间的差异,除了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
date
实用程序不同,但事实证明,我尝试了不同的实用程序,它们在OSX上都给出了相同的结果。它是深藏在某个库中还是什么? - flashvoid