失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python获取当前utc时间_python中通过datetime获取UTC时间ISO格式

python获取当前utc时间_python中通过datetime获取UTC时间ISO格式

时间:2021-09-20 23:57:41

相关推荐

python获取当前utc时间_python中通过datetime获取UTC时间ISO格式

一个热点统计需求,需要限定一个时间范围,计算出该范围内的热点事件,相关数据则以UTC标准时间的ISO时间格式存在mongodb中,和服务器设置的时区UTC+8并不一致。

为了解决这个问题,直觉反应是在python中将时区改为UTC时区,然而改变整个服务的时区设置却可能会影响其他逻辑,此种更改最好是能限定在热点逻辑的这个范围内。

也可以在使用datetime类的时候指定时区信息,这样也可以获得UTC时间,如下为默认时区和指定UTC的输出结果,差了8个小时(北京时间UTC+8)

>>> datetime.datetime.now()

datetime.datetime(, 9, 18, 0, 28, 50, 666364)

>>> utc_tz = pytz.timezone('UTC')

>>> datetime.datetime.now(tz=utc_tz)

datetime.datetime(, 9, 17, 16, 28, 54, 535585, tzinfo=)

要获取ISO格式的时间则可以调用datetime类中的isoformat函数:

>>>datetime.datetime.now().isoformat()'-09-18T00:30:50.587223'

>>> datetime.datetime.now(tz=utc_tz).isoformat()'-09-17T16:30:58.410670+00:00'

这样也可以实现生成UTC时间的ISO格式功能,但是略显麻烦,help(datetime.datetime)查看发现已经有定义好的utc相关函数可以用了,utcnow函数就可以获得当前的utc标准时间:

>>>datetime.datetime.utcnow()

datetime.datetime(, 9, 17, 16, 40, 18, 683716)>>>datetime.datetime.utcnow().isoformat()'-09-17T16:41:06.418447'

要限定时间范围,则可以通过datetime.timedelta类获得一个按天、秒或毫秒计数的时间区间,然后和当前时间相减即可得出起始时间了,例如起始时间为当前时间往前10天10秒0毫秒:

>>> td = datetime.timedelta(days=10,seconds=10,microseconds=0)>>>td

datetime.timedelta(10, 10)>>>datetime.datetime.utcnow().isoformat()'-09-17T16:52:04.09'

>>> (datetime.datetime.utcnow() -td).isoformat()'-09-07T16:51:54.525088'

如果觉得《python获取当前utc时间_python中通过datetime获取UTC时间ISO格式》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。