代码之家  ›  专栏  ›  技术社区  ›  Indrajeet Gour

在Unix中日期转换为IST时间[重复]

  •  0
  • Indrajeet Gour  · 技术社区  · 6 年前


    我想用bash命令从另一个时区(UTC-4)获取日期和时间,但不想将其配置为系统的默认TZ。
    有简单的方法吗?
    例1(当前):

    $ date
    fri nov  7 13:15:35 UTC 2014
    

    例2(我需要的):

    $ date (+ some option for UTC-4)
    fri nov  7 09:15:35 UTC 2014
    
    0 回复  |  直到 6 年前
        1
  •  9
  •   SMA    10 年前

    你可以用

    TZ=America/New_York date
    

    date -d "+5 hours"
    
        2
  •  5
  •   anubhava    10 年前

    可以在中使用偏移值 TZ

    TZ=UTC date -R
    Fri, 07 Nov 2014 13:55:07 +0000
    
    TZ=UTC+4 date -R
    Fri, 07 Nov 2014 09:54:52 -0400
    
        3
  •  1
  •   rubo77    9 年前

    如果其他解决方案不起作用,使用

    date --date='TZ="UTC+4" 2016-08-22 10:37:44' "+%Y-%m-%d %H:%M:%S"
    

        4
  •  0
  •   mivk    5 年前

    我用了一个小脚本,所以我不必知道或记住我要找的时区的确切名称。脚本将搜索字符串作为参数,并给出与搜索匹配的任何时区的日期和时间。我给它起了个名字 wdate .

    #!/bin/sh
    
    # Show date and time in other time zones
    
    search=$1
    
    zoneinfo=/usr/share/zoneinfo/posix/
    format='%a %F %T'
    
    find -L $zoneinfo -type f \
        | grep -i "$search" \
        | while read z
          do
              d=$(TZ=$z date +"$format")
              printf "%-34s %23s\n" ${z#$zoneinfo} "$d"
          done
    

    输出示例:

    $ wdate fax
    America/Halifax                    Wed 2020-01-15 07:55:43
    

    $ wdate canad
    Canada/Pacific                     Wed 2020-01-15 04:03:54
    Canada/Central                     Wed 2020-01-15 06:03:54
    Canada/Mountain                    Wed 2020-01-15 05:03:54
    Canada/Saskatchewan                Wed 2020-01-15 06:03:54
    Canada/Atlantic                    Wed 2020-01-15 08:03:54
    Canada/Newfoundland                Wed 2020-01-15 08:33:54
    Canada/Yukon                       Wed 2020-01-15 04:03:54
    Canada/Eastern                     Wed 2020-01-15 07:03:54