首页 热点资讯 义务教育 高等教育 出国留学 考研考公

linux下为什么date +%s -d '1970-01-01 08:00:00'是0,而date +%s -d '1970-01-01 00:00:00'是-28800

发布网友 发布时间:2022-04-22 17:24

我来回答

4个回答

热心网友 时间:2023-11-13 11:00

linux 的时间格式是全数字的。这一点通常在syslog里体现。28800的单位是秒。如果想换成标准时间要进行转换的

热心网友 时间:2023-11-13 11:00

你输入的1970-01-01 08:00:00是中国的时间,在linxu中是世界时间,就是0,,其他的你该明白了吧追问我开始以为date +%s -d '1970-01-01 00:00:00'应该是0,难道是时差的原因?在中国我们所计算的秒难道是从1970-01-01 08:00:00开始的么?可为什么将秒转化为标准时间时是date -d '1970-01-01 1328062200 sec utc',而不是date -d '1970-01-01 08:00:00 1328062200 sec utc'?

追答时间的转换有好几个函数,stime,getdate等,世界时间和中国时间相差8小时,也就是28800秒,一般都是先把本地时间转算为世界时间,再计算,然后再转换回来。具体的慢慢倒吧,还有linux版本也多,个别函数也有区别。一句话,实验出真知!

热心网友 时间:2023-11-13 11:01

-28800 = 8 * 60 *60 ;
即1970-01-01 08:00:00 和 1970-01-01 00:00:00 之间正好相差28800秒。
关于正负号
正号表示在那个时间之后,负号表示时间之前。

热心网友 时间:2023-11-13 11:01

这个参数计算的是从1970-01-01 08:00:00开始到''中指定的时间的秒数,00:00:00是前28800秒如果是1970-01-01 16:00:00的话就是28800

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com