unix shell脚本在格林尼治标准时间30分钟前得到日期

时间:2010-01-08 18:47:27

标签: unix datetime shell scripting

我有一个shell脚本,我想在格林威治标准时间30分钟前获取日期和时间。

我的工作时间非常长,但部分时间似乎不起作用:

1小时前

TZ = GMT + 1日期+%Y-%m-%d“”%H:%M:%S 2010-01-08 17:43:57

2小时前

TZ = GMT + 2日期+%Y-%m-%d“”%H:%M:%S 2010-01-08 16:44:07

1/2小时前

TZ = GMT + .5日期+%Y-%m-%d“”%H:%M:%S 2010-01-08 18:44:38

尝试了0.5 1.5的许多组合,没有部分小时工作,这很奇怪,因为有些时区不是一小时的完全偏移。

有什么建议吗?

无法使用perl或ruby需要定期shell或mysql调用。

3 个答案:

答案 0 :(得分:14)

date -u --date =“ - 30分钟”

答案 1 :(得分:8)

你也可以这样做:

TZ='UTC+0:30' date

答案 2 :(得分:1)

 /usr/bin/env TZ='GMT' date -d '-30 minutes'

这是日期命令的版本,它是GNU coreutils的一部分。我不知道它是否适用于date程序的其他版本。