【问题标题】:unix shell script to get date 30 minutes ago in GMT在 GMT 中获取 30 分钟前的日期的 unix shell 脚本
【发布时间】:2010-01-08 18:47:27
【问题描述】:

我有一个 shell 脚本,我想在 GMT 中获取 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调用。

【问题讨论】:

    标签: unix datetime shell scripting


    【解决方案1】:

    日期 -u --date="-30 分钟"

    【讨论】:

    • 如果您在 OS X 上,等效选项是:date -u -v-30M
    • 谢谢,如果我有一个可以同时在 linux centos 和 osx 上工作的版本会很理想,但我现在可以使用 2 个版本。
    • 除了“-30 分钟”,您还可以说“30 分钟前”,这与您问题的那一部分完全匹配。
    【解决方案2】:

    您也可以这样做:

    TZ='UTC+0:30' date
    

    【讨论】:

    • 适用于 Mac OS X 和 Ubuntu。
    • 这是一个更兼容的解决方案 - 也适用于 alpine linux
    【解决方案3】:
     /usr/bin/env TZ='GMT' date -d '-30 minutes'
    

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

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2015-03-06
      • 2010-09-05
      • 2018-07-12
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多