如何将datetime.date.today()转换为UTC时间?

49

如何确保 datetime.date.today() 转换为UTC时间?

这是我目前的代码:

#today : 2014-12-21
today = datetime.date.today()

#1900-01-01 16:00:00+00:00
timeformat = datetime.datetime.strptime('16:00', '%H:%M').replace(tzinfo=pytz.utc)

#combine today and timeformat  2014-12-21 16:00:00
now = datetime.datetime.combine(u, timeformat.time())
str_now =  now.strftime("%Y-%m-%d %H:%M:%S")
2个回答

95

使用utcnow

today = datetime.datetime.utcnow().date()

1
只有当本地时间的午夜(date.today())与UTC的午夜(.utcnow().date())是同一时刻时,才是正确的。请参阅如何获取给定时区的“午夜”的UTC时间? - jfs
这与午夜有什么关系?它只是获取当前UTC日期。 - webjunkie
5
请看问题标题,注意:其中有一个 date.today()。它返回本地时区的日期。该值在本地时区的午夜时分发生更改。在23:59:59时,它是一天,在00:00:00时,它是另一天。你跟上了吗?那一刻:本地时区的00:00对应着不同的UTC时间,取决于本地时区,例如在纽约的2016-02-27 00:00对应着UTC时间的2016-02-27 05:00。如果问题标题是“现在在UTC中的当前日期是什么”,我会同意你的观点。 - jfs

-5

如果要打印日期和时间,您可以使用...

tomorrow =  twtomorrow.strftime("%Y-%m-%d %H:%M:%S")

而不是

tomorrow =  twtomorrow.strftime("%Y-%m-%d")

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