如何从shell中的日期时间格式中减去时间?

时间:2018-03-21 18:13:16

标签: bash shell unix

我和shell有特定的日期和时间。现在我需要从特定的日期和时间中减去7个小时 例如,
2018-03-20 21:00:00 - > 2018-03-20 14:00:00
2018-03-20 06:00:00 - > 2018-03-19 23:00:00

我也有不同字符串的日期和时间。

如何在shell(v4.1)中写这个?

2 个答案:

答案 0 :(得分:1)

您可以将POSIX算术运算符与date -d@结合使用,从任何给定日期减去7小时(7 * 3600秒),例如

$ date -d@$(($(date -d"2018-03-20 21:00:00" +%s) - 7 * 3600))
Tue Mar 20 14:00:00 CDT 2018

答案 1 :(得分:1)

class ImageGalleryCell : UICollectionViewCell { @IBOutlet weak var imgPhoto: UIImageView! //let uniqueTag = String.random() func setup(){ let rec = UITapGestureRecognizer.init(target: self, action: #selector(tap)) // here we go: imgPhoto.isUserInteractionEnabled = true imgPhoto.addGestureRecognizer(rec) } @objc func tap(){ print("tap") } override func awakeFromNib() { super.awakeFromNib() setup() } } 的某些实现了解时间算术,例如" -7小时":

date

使用#!/bin/bash format='+%Y-%m-%d %H:%M:%S' Test () { date=$1 time=$2 expect=$3 d=$(date "$format %Z" -d "$date $time") plus7=$(date "$format" -d "$d -7 hours") if [[ $plus7 == $expect ]] ; then echo ok else echo $plus7 fi } Test 2018-03-20 21:00:00 '2018-03-20 14:00:00' Test 2018-03-20 06:00:00 '2018-03-19 23:00:00' 进行测试。