如何通过-d选项传递小时和分钟到日期命令

时间:2018-02-16 16:24:26

标签: bash date

我知道如何使用date命令格式化bash中的日期

date -d 20160304 +%Y%m%d 
例如,

。但现在我想通过日期和时间并返回小时和分钟。我知道我需要的输出格式是+%H%M,但我不知道如何格式化日期字符串,它不在手册页中。

例如,如果我尝试其中任何一个:

 date -d 201801010500 +%H%M
 date -d 20180101_0500 +%H%M 
 date -d 2018-01-01_0500 +%H%M 
 date -d 2018:01:01-05:00 +%H%M

我得到一个"无效日期"错误。当我搜索谷歌我总是找到答案参考输出格式,而不是输入格式......

2 个答案:

答案 0 :(得分:3)

GNU日期接受这些格式,其中我肯定

$ date -d '2018-02-16 12:34'
Fri Feb 16 12:34:00 EST 2018
$ date -d '2018-02-16T12:34:56'
Fri Feb 16 12:34:56 EST 2018
$ date -d '2018-02-16T12:34:56Z'
Fri Feb 16 07:34:56 EST 2018

一般来说,ISO8601时间格式不会出错

我在加拿大/东部时区

答案 1 :(得分:2)

date实用程序在理解-d选项的不同参数时非常令人印象深刻。

这只是一个例子:

$ date -d "20180101 05:00:00"
Mon Jan  1 05:00:00 +07 2018

注意+07是当地时区。