请问如何获得给定时区的“午夜”UTC时间?

如何获得给定时区的“午夜”UTC时间?

我现在能想到的最好的就是这种怪异:


>>> datetime.utcnow() \

...   .replace(tzinfo=pytz.UTC) \

...   .astimezone(pytz.timezone("Australia/Melbourne")) \

...   .replace(hour=0,minute=0,second=0,microsecond=0) \

...   .astimezone(pytz.UTC) \

...   .replace(tzinfo=None)

datetime.datetime(2008, 12, 16, 13, 0)

即,用英语,获取当前时间(以UTC为单位),将其转换为其他时区,将时间设置为午夜,然后转换回UTC。


我不只是使用now()或localtime(),因为它会使用服务器的时区,而不是用户的时区。


我不禁感到我错过了什么,有什么想法吗?


侃侃无极
浏览 644回答 3
3回答

慕工程0101907

设置TZ环境变量会修改Python的日期和时间函数的时区。>>> time.gmtime()(2008, 12, 17, 1, 16, 46, 2, 352, 0)>>> time.localtime()(2008, 12, 16, 20, 16, 47, 1, 351, 0)>>> os.environ['TZ']='Australia/Melbourne'>>> time.localtime()(2008, 12, 17, 12, 16, 53, 2, 352, 1)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java