linux的date命令使用指定时间的加减方法与异常

博客内容讲述了在Linux中使用date命令进行时间减运算时遇到的异常情况,例如尝试从指定时间减去小时或分钟导致结果错误。通过测试发现,使用'ago'关键字或者改变运算顺序可以得到正确结果。正确示例包括使用'd-1hoursago'或'-1hours2014-11-2208:08:08'。
摘要由CSDN通过智能技术生成

在一般网页里,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.】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值