【问题标题】:Receive a time stamp from input in a shell script从 shell 脚本中的输入接收时间戳
【发布时间】:2016-12-31 09:21:44
【问题描述】:

我正在编写一个接收两个输入的脚本:

  1. 时区(美国/洛杉矶)
  2. UTC 时间戳,格式如下"%Y-%m-%dT%H:%M:%SZ”)

脚本应该找到偏移量并将其添加到输入时间戳中,所以当我运行时:

./TZ-converst.sh Asia/Kolkata 2016-12-07t00-00-00z

输出将是2016-12-07t00-05-30z

每个时区的偏移量很容易:

offset="$(TZ=":$tz" date +%z )"

但是,我很难将此偏移量添加到输入时间"2016-12-07t00-00-00z"

我正在尝试使用date -d 来使用输入参数,但我不断收到

"用法:日期 [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...[-f fmt date | [[ [mm]dd]HH]MM[[cc]yy][.ss]] [+格式]"

有什么想法吗?

【问题讨论】:

  • date -d '2016-12-07T00:00:00Z +1 hour' 产生Wed Dec 7 01:00:00 UTC 2016
  • 不,它没有。这是我在运行该命令后得到的“用法:日期 [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... [-f fmt 日期 | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]"
  • 老实说,只是 @bishop date -d 命令的精确复制粘贴,在我的机器上产生 Wed Dec 7 03:00:00 EET 2016 。你的date --version 是什么?我的 debi 有 GNU 日期版本 8.26
  • 日期 --version 为 8.4
  • @Erin 根据这篇文章,您似乎正在尝试使用您的版本不支持的日期进行操作。 unix.stackexchange.com/questions/166856/…

标签: linux bash date


【解决方案1】:

打印时区偏移,根据夏令时推导,在特定时间:

TZ=Asia/Kolkata date -d '2016-12-07t00:00:00z' +%z
+0530

注意保持语法:

- - t 小时 : 分钟 : z

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多