1

現地時間の日付があります:

date: "2013-12-02 22:00:00"

および別の値 tz:

timezone_offset: "GMT-0800"

もし私が:dateutil.parser.parse(date).isoformat()私は得る:

"2013-12-02T22:00:00+0000"

datetz 情報を使用して ISO 形式で実装し、次の結果を得たいと考えています。

"2013-12-02T22:00:00-0800"

に近いもの: parse(date,tzinfos=??).isoformat()? 文字列から tzinfo を取得するにはどうすればよいtimezone_offsetですか?

4

2 に答える 2

0
>>> from dateutil.parser import parse
>>> dt = parse("2013-12-02 22:00:00" + "GMT+0800")
>>> dt.isoformat()
'2013-12-02T22:00:00-08:00'

注:符号が逆です。

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場所:

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これはmoduleを使用した場合と同じです:

>>> 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'
于 2013-11-13T22:56:44.483 に答える