得到tz偏移刺痛 [英] Get tz offset from sting
本文介绍了得到tz偏移刺痛的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个当地时间的日期:
I have a date which is in local time:
date: "2013-12-02 22:00:00"
另一个值为tz:
timezone_offset: "GMT-0800"
如果我: code> dateutil.parser.parse(date).isoformat()我会得到:
If I : dateutil.parser.parse(date).isoformat()
I will get:
"2013-12-02T22:00:00+0000"
我想使用tz信息实现ISO格式的日期
,并得到以下结果:
"2013-12-02T22:00:00-0800"
接近的东西: parse(date,tzinfos = ??)。isoformat()
?如何从字符串 timezone_offset
中获取tzinfo?
Something close to: parse(date,tzinfos=??).isoformat()
? How can I get the tzinfo from the string timezone_offset
?
推荐答案
>>> from dateutil.parser import parse
>>> dt = parse("2013-12-02 22:00:00" + "GMT+0800")
>>> dt.isoformat()
'2013-12-02T22:00:00-08:00'
Note: the sign is reversed.
您也可以只使用stdlib:
You could also do it using only stdlib:
>>> from datetime import datetime
>>> dt = datetime.strptime("2013-12-02 22:00:00", "%Y-%m-%d %H:%M:%S")
>>> dt = dt.replace(tzinfo=FixedOffset(-8*60, "GMT+0800"))
>>> dt.isoformat()
'2013-12-02T22:00:00-08:00'
其中 FixedOffset
取自 datetime
docs :
where FixedOffset
is taken from datetime
docs:
from datetime import tzinfo, timedelta
class FixedOffset(tzinfo):
"""Fixed offset in minutes east from UTC."""
def __init__(self, offset, name):
self.__offset = timedelta(minutes = offset)
self.__name = name
def utcoffset(self, dt):
return self.__offset
def tzname(self, dt):
return self.__name
def dst(self, dt):
return timedelta(0)
使用 pytz
模块:
>>> from datetime import datetime
>>> import pytz
>>> dt = datetime.strptime("2013-12-02 22:00:00", "%Y-%m-%d %H:%M:%S")
>>> dt = pytz.timezone('Etc/GMT+8').localize(dt)
>>> dt.isoformat()
'2013-12-02T22:00:00-08:00'
这篇关于得到tz偏移刺痛的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文