在修改时区后,在Python中获取系统日期/时间

5

在我的系统上,我已将时钟的当前时区设置为“吉隆坡,新加坡(UTC+08:00)”,这使得我的时钟快了八个小时(当然)。

在Python中,我正在使用以下代码获取当前时间/日期:

from datetime import datetime
dateTimeTuple = datetime.now()

我使用这种方法是因为我需要包括微秒在内的单独时间部分。

然而,它总是返回一个普通的时间(不是基于所选时区提前八小时的时间)。

是否有其他方法?

1个回答

3

datetime.now()返回一个本地时间,没有时区信息。要将其转换为吉隆坡时间,您需要首先将其转换为带有时区信息的datetime,然后再将其转换为吉隆坡时区:

进行时区转换的最简单方法是使用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

由于英国夏令时吉隆坡没有夏令时,目前的时差为7小时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接