1

printf $(date +%F)2012-07-14根据shell 脚本中的 YYYY-MM-DD 格式日期打印。但是,如何2012-07-14T16:39:57-08:00根据HTML5 datetime打印?

4

2 回答 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 回答