3

次の日付/時刻を含む JSON 文字列を返す API を使用しています。

2013-03-14T14:15:23-07:00

日付と時刻を秒単位で取得します。しかし、最後の 5 文字は私を混乱させます。それはUTCオフセットだと思います。(山の時間) どうすればよいかわかりません。上記の文字列を python の日付/時刻と比較することです。Tも私を捨てています。

上記と一致するようにPythonの日付/時刻文字列をエンコードするにはどうすればよいですか?

4

2 に答える 2

3

python-dateutilライブラリ ( https://crate.io/packages/python-dateutil/ ) を使用すると、その値をdatetime.

>>> dateutil.parser.parse('2013-03-14T14:15:23-07:00')
datetime.datetime(2013, 3, 14, 14, 15, 23, tzinfo=tzoffset(None, -25200))
于 2013-02-13T05:36:45.773 に答える
2

ISO 8601日付形式を見ています。パッケージを使用して解析することも、自分で行うこともできます。

datetime.strptime を使用して解析できます。

>>> ts='2013-03-14T14:15:23-07:00'
>>> datetime.datetime.strptime(ts[0:-6],'%Y-%m-%dT%H:%M:%S')
datetime.datetime(2013, 3, 14, 14, 15, 23)

次に、時間デルタを加算/減算します (「ナイーブ」オブジェクトの場合):

>>> datetime.timedelta(hours=int(ts[-6:-3]))
datetime.timedelta(-1, 61200)

それで:

>>> d=datetime.datetime.strptime(ts[0:-6],'%Y-%m-%dT%H:%M:%S')+datetime.timedelta(hours=int(ts[-6:-3]))
>>> d
datetime.datetime(2013, 3, 14, 7, 15, 23)

トリッキーな部分は、TZ がオプションであり、時間オフセットを加算/減算するか、日付オブジェクトにタイムゾーンを設定するかです。

于 2013-02-13T05:52:48.867 に答える