本文主要是介绍linux的date命令使用指定时间的加减方法与异常,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在一般网页里,date命令减时间方法为:
date -d '-100 days'
我的需求是,在指定时间上减8小时。按一般理解来看,命令写成如下样子(有异常错误的写法):
date -d "2014-11-22 08:08:08 -1 days" "+%d-%m-%Y %H:%M:%S"
期望结果是:23-11-2014 08:08:08
实际结果是:23-11-2014 17:08:08
所以,结果异常错误。同理减分钟减小时,同样错误,比如:
date -d "2014-11-22 08:08:08 -1 mins" "+%d-%m-%Y %H:%M:%S" date -d "2014-11-22 08:08:08 -1 hours" "+%d-%m-%Y %H:%M:%S"
实际结果:
22-11-2014 17:09:08 22-11-2014 18:08:08
起初以为是系统差异问题。经过测试,centos和ubuntu运行结果一样异常。
所以正确写法如下:替换减号 使用 ago
date -d "2014-11-22 08:08:08 1 hours ago" "+%d-%m-%Y %H:%M:%S" date -d "2014-11-22 08:08:08 1 mins ago" "+%d-%m-%Y %H:%M:%S"
正确结果:
22-11-2014 07:08:08 22-11-2014 08:07:08
或者:将减小时,减分钟条件移到前端
date -d "-1 hours 2014-11-22 08:08:08" "+%d-%m-%Y %H:%M:%S" date -d "-1 mins 2014-11-22 08:08:08" "+%d-%m-%Y %H:%M:%S"
正确结果:
22-11-2014 07:08:08 22-11-2014 08:07:08
【One thing won't change.that is change.】
这篇关于linux的date命令使用指定时间的加减方法与异常的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!