如何将iso 8601转换为自1970-01-01 00:00:00 UTC

时间:2017-11-01 08:14:04

标签: linux unix

我想将日期与hwclock进行比较。

HW Clock Reading

$ hwtime=$(hwclock -r | rev | cut -d"." -f2- | rev)
$ echo $hwtime
// Wed 01 Nov 2017 02:36:59 PM ICT

系统时钟阅读

$ date +%c 
// Wed 01 Nov 2017 03:10:48 PM ICT

自1970-01-01 00:00:00 UTC

以来的秒数示例
$ date +%s
// 1509522055

问题

如何将$ hwtime转换为1970-01-01 00:00:00 UTC后的秒数?


比较这样。

if [ $hwclock_in_second -ge $systime_in_second ];
then
    break
fi

2 个答案:

答案 0 :(得分:1)

也许有一些方法,但这似乎有效:

date --date="$(hwclock -u)" +%s

修改

似乎:

date --date="$(hwclock -r | rev | cut -d"." -f2- | rev | cut -d" " -f2-)" +%s

是必要的,它可以在提问者的框中工作。出于某种原因,我的箱子上没有问题。如果您对"为什么"。

有任何建议,请随时添加评论

答案 1 :(得分:0)

详细了解time(7)date(1)。您可以使用-d--date选项date(1)来解析其他日期。您可以使用%s格式以秒为单位获得基于Unix-epoch的时间。

另请阅读adjtimex(2)NTP。通常不应该突然改变系统时间。

对于C语言中的程序,另请参阅difftime(3)strftime(3)strptime(3)localtime_r(3)time(2)