如何将时区添加到datetime.datetime对象?

时间:2014-04-12 01:32:35

标签: python python-2.7 datetime timezone pytz

我有datetime.datetime个对象(datetime.datetime(2014, 4, 11, 18, 0)),我想使用pytz为其分配一个时区。我知道您可以将pytzdatetime.datetime.now()对象(datetime.datetime.now(pytz.timezone('America/Los_Angeles')))一起使用,但如何使用自定义对象进行此操作?

2 个答案:

答案 0 :(得分:3)

使用localize method

import pytz
import datetime
la = pytz.timezone('America/Los_Angeles')
now = la.localize(datetime.datetime.now())
print(repr(now))

产量

datetime.datetime(2014, 4, 11, 21, 36, 2, 981916, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>)

localize用于解释与时区相关的时区 - 不知道日期时间。结果是时区感知日期时间。 请注意,某些时区不知道的日期时间(例如datetime(2002, 10, 27, 1, 30, 00))在某些时区中不明确。 Use the is_dst parameter以避免歧义。

astimezone用于将感知日期时间转换为其他时区。

答案 1 :(得分:1)

或者,您可以直接为os.environ['TZ']指定时区。

import os
import datetime

print datetime.datetime.now()

os.environ['TZ'] = 'America/Los_Angeles'

print datetime.datetime.now()