4

我需要编写一个 bash 函数来返回自定义日期的 EPOCH 时间。

我在格式中使用日期和时间;

date=20130122 # i.e. 2013 01 22
time=1455     # i.e. 14:55

我可以使用这些值获得 EPOCH 时间吗?

有谁知道解决方案?

4

3 回答 3

12
date -d "$date $time" +%s

可以在 GNU date 中工作。

对于 BSD date(包含在 Mac OS X 中),命令为

date -j -f "%Y%m%d %H%M" "$date $time" +%s

-f需要解析您的日期和时间;默认格式需要“012214552013”​​来指定相同的时间)

于 2013-01-22T14:57:16.207 回答
6

简短的回答:

date --date "20130122 1455" +%s

这将为您提供时代的日期。

或者,如果您使用变量,只需像这样替换日期和时间:

d=20130122
t=1455
date --date "$d $t" +%s

并尽量避免使用“日期”和“时间”作为变量名,因为它们很容易被误解为命令(它们都是有效的命令)。这是为了增加可读性。

于 2013-01-22T14:58:12.190 回答
2

偶然发现了这个。在 BASH 3.2 中,我收到“无效日期”错误。应该:

date -d "2013-01-22 14:55" +%s
于 2013-11-09T15:15:48.417 回答