由于中央时区CDT在中央标准时间(GMT-6)和中央日光时间(GMT-5)之间振荡,因此有一种方法可以使用BASH /日期来计算特定时间的GMT和中央时间之间的秒数日期?
例如,计算3月1日中央时间(含夏令时)与格林尼治标准时间之间的秒数应为6小时* 3600秒/小时= 21600秒。如果在3月31日进行计算,则应该得出5小时* 3600秒/小时= 18000秒。
答案 0 :(得分:1)
这是我找到的解决方案。
$ date1="2018-03-11 01:59:00"
$ echo "$(TZ="US/Central"; date -d "$date1" +"%s") - $(date -u -d "$date1" +"%s")" | bc
21600
$ date1="2018-03-11 03:01:00"
$ echo "$(TZ="US/Central"; date -d "$date1" +"%s") - $(date -u -d "$date1" +"%s")" | bc
18000
由于它不能很好地处理无效日期,因此不太理想:
$ date1="2018-03-11 02:00:00"
$ echo "$(TZ="US/Central"; date -d "$date1" +"%s") - $(date -u -d "$date1" +"%s")" | bc
date: invalid date ‘2018-03-11 02:00:00’
-1520733600