我有一个格式的string
20110724T080000Z
我想在Linux上的shell脚本中将其转换为本地时间。 我以为我只是可以把它作为inputdate,但我似乎不能告诉date我的inputdate有什么格式。
这个
date -d "20110724T080000Z" -u
会让date抱怨
date: invalid date `20110724T080000Z'
另外,forms为“20110724T080000Z”的格式是什么? 试图谷歌,我没有成功。
这是合并日期和时间的ISO8601“基本格式” 。 date
似乎不能解析20110724T080000Z
,但如果你准备做几个字符串替换,它正确地解析20110724 08:00:00Z
。
它被称为祖鲁时间。 它和UCT一样,曾经被称为GMT。 它与军方一起使用来指定UCT,因此不存在相应的混淆。
http://en.wikipedia.org/wiki/Date_(Unix )
这个命令应该根据维基百科工作:
日期[-u | –utc | –universal] [mmddHHMM [[cc] yy] [[。SS]]此表单的唯一有效选项指定协调世界时。
你可以尝试利用perl:
perl -e'打印标量localtime(shift),“\ n”'20110724T080000Z
虽然你可能需要调整这一点,以使其正常工作。 好吧,我不知道为什么perl版本不好,但是这里是我尝试过的一个Ruby版本,尽管我不能很好的选择时间:
ruby -e“require'date';打印Date.strptime('20110724T080000Z','%Y%m%dT%H%M%SZ')。ctime”
得到:
太阳7月24日00:00:00 2011