我有一个datetime.datetime
对象(datetime.datetime(2014, 4, 11, 18, 0)
),我想使用pytz
为它分配一个时区。我知道您可以将pytz
与datetime.datetime.now()
对象(datetime.datetime.now(pytz.timezone('America/Los_Angeles'))
)一起使用,但如何使用自定义对象呢?
使用localize
方法:
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)
,在某些时区中是不明确的。使用is_dst
参数来避免歧义。
astimezone
用于将感知日期时间转换为其他时区。
或者,您可以直接将时区分配给os.environ['TZ']
。
import os
import datetime
print datetime.datetime.now()
os.environ['TZ'] = 'America/Los_Angeles'
print datetime.datetime.now()