在使用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
有人可以帮我解决这个问题。
答案 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))