在我的系统上,我已将时钟的当前时区设置为“吉隆坡,新加坡(UTC + 08:00)”,这将我的时钟提前8小时(当然)。
在python中,我使用代码来获取当前时间/日期:
from datetime import datetime
dateTimeTuple = datetime.now()
我正在使用这种方法,因为我需要各个部分(包括微秒)。
但是,它总是会给我一个固定的时间(根据所选的时区不是八小时)。
还有其他方法吗?
答案 0 :(得分:2)
datetime.now()
返回一个天真的本地日期时间。要将其转换为吉隆坡时间,首先需要将其设为时区感知日期时间,然后将其转换为吉隆坡时区:
进行时区转换的最简单方法是使用pytz。
import pytz
import datetime as dt
kuala_lumpur=pytz.timezone('Asia/Kuala_Lumpur')
localtz=pytz.timezone('Europe/London')
这是天真的日期时间。
now = dt.datetime.now()
使用localize
识别日期时区。
now=localtz.localize(now)
print(now)
# 2011-09-19 11:58:46.342254+01:00
使用astimezone
转换为其他时区:
now_in_kuala_lumpur=now.astimezone(kuala_lumpur)
print(now_in_kuala_lumpur)
# 2011-09-19 18:58:46.342254+08:00
由于Daylight Savings Time in the UK和no DST in Kuala Lumpur,时差目前为7小时。