unix日期格式将HKT或JST转换为EST时区

时间:2015-01-28 12:02:14

标签: date unix

在使用unix中的日期格式将日期转换为+% - m /% - d /%Y时,我将日期转换为时区。 HKT或JST到EST的时区,我希望将日期转换为mm / dd / yy而不进行此时区转换

示例:

$ date -u '--d=Sun Jan 25 08:39:12 JST 2015' +%-m/%-d/%Y
1/24/2015

我也尝试过-u -d options

$ date -u -d 'Sun Jan 25 08:39:12 JST 2015' +%-m/%-d/%Y
1/24/2015

有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

要更改输出时区,您可以设置TZ envvar:

$ TZ=EST date -d 'Sun Jan 25 08:39:12 JST 2015' 
Sat Jan 24 18:39:12 EST 2015
$ TZ=JST date -d 'Sun Jan 25 08:39:12 JST 2015' 
Sun Jan 25 08:39:12 JST 2015

要忽略输入时区或自动检测它,可以使用Python脚本:

#!/usr/bin/env python
"""Change date/time format.

Usage: $ {prog} <input-date-time> <output-format>

Example: $ ./change-date-format 'Sun Jan 25 08:39:12 JST 2015' %-m/%-d/%Y
Output:  1/25/2015
"""
import sys
from dateutil.parser import parse # apt-get install python-dateutil
try:
    date_string, date_format = sys.argv[1:]
except ValueError:
    sys.exit(__doc__.format(prog=sys.argv[0])) # print usage info
else:
    datetime_object = parse(date_string)
    print(datetime_object.strftime(date_format))
相关问题