在excel中,当我输入单元格A1 = 1/1/1970和A2 = today()时,A2解析为2020年4月17日。当我用A1减去A2时,得到18369,这是我的数据转换逻辑的时代。
我正在尝试在awk中模拟相同的功能,但未获取整数
$ awk ' BEGIN { t=strftime("%F",systime()); print t; gsub("-"," ",t); t2=mktime(t " 0 0 0" ); print t2/(24*60*60) } '
2020-04-17
18368.8
$
这个awk的翻译正确吗?我的awk代码差异0.2的原因是什么?如何解决。
将我的评论转换为答案,以便将来的访问者轻松找到解决方案。
由于当前本地时区和UTC之间的时区偏移,您会看到这种差异。
在最近的gnu awk
版本中,你可以使用这个额外的传递utc-flag
给mktime
函数:
awk 'BEGIN {t=strftime("%F",systime()); print t;
gsub("-"," ",t); t2=mktime(t " 0 0 0", 1); print t2/(24*60*60)}'
但是,如果您使用的是较早的awk版本,请使用以下解决方法在UTC
以下位置获取时间计算:
TZ=UTC awk 'BEGIN {t=strftime("%F",systime()); print t;
gsub("-"," ",t); t2=mktime(t " 0 0 0"); print t2/(24*60*60) } '
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句