printf $(date +%F)
2012-07-14
根据shell 脚本中的 YYYY-MM-DD 格式日期打印。但是,如何2012-07-14T16:39:57-08:00
根据HTML5 datetime打印?
问问题
1428 次
2 回答
2
HTML5 需要符合 RFC3339 标准,因此如果您使用的是 gnu 版本的 date,那么 --rfc-3339 扩展将打印您想要的内容
antonio@localhost:~$ date --rfc-3339=seconds
2012-07-14 12:57:14+08:00
如果您使用的是 mac 或没有 gnu 版本,则:
[13:00] antonio@chimera:~>date +%FT%T%z
2012-07-14T13:01:35+0800
很接近,但没有雪茄,因为时区部分缺少“:”,所以如果你不想通过 sed、cut 等管道传输它,你可以通过询问日期来输出 UTC 时间并添加手动时区部分(显然 UTC 时间偏移量是 00:00,所以这将始终有效)
[13:01] antonio@chimera:~>date -u '+%FT%T+00:00'
2012-07-14T05:01:59+00:00
于 2012-07-14T05:05:59.700 回答
1
$ date +%FT%T%z
2012-07-14T00:42:52-0400
我不确定如何在不使用字符串操作的情况下获得时区偏移中的冒号。
$ datetime=`date +%FT%T%z`
$ printf ${datetime:0:${#datetime}-2}:${datetime:${#datetime}-2}
2012-07-14T00:42:52-04:00
于 2012-07-14T04:43:47.507 回答