Bash:日期格式为HTML5 datetime

Bash: date format as HTML5 datetime

printf $(date +%F)印本2012-07-14,根据为YYYY-MM-DD格式的日期在shell脚本。但是,我怎么做我2012-07-14T16:39:57-08:00打印,根据HTML5的日期吗? </P >


HTML5需要rfc339编译,因此,如果您使用的是日期的GNU版本,那么--rfc-3339扩展将打印您想要的内容

1
2
antonio@localhost:~$ date --rfc-3339=seconds
2012-07-14 12:57:14+08:00

如果您在Mac上或没有GNU版本,那么:

1
2
[13:00] antonio@chimera:~>date +%FT%T%z      
2012-07-14T13:01:35+0800

很近,但没有雪茄,因为时区部分缺少":",因此,如果您不想通过sed、cut、etcetera传输数据,您可以通过询问日期来输出UTC时间,然后手动添加时区部分(显然,UTC时间偏移是00:00,因此这将始终有效)

1
2
[13:01] antonio@chimera:~>date -u '+%FT%T+00:00'
2012-07-14T05:01:59+00:00

1
2
$ date +%FT%T%z
2012-07-14T00:42:52-0400

我不知道如何在不使用字符串操作的情况下获得时区偏移量中的冒号。

1
2
3
$ datetime=`date +%FT%T%z`
$ printf ${datetime:0:${#datetime}-2}:${datetime:${#datetime}-2}
2012-07-14T00:42:52-04:00