如何解决Unix 纪元时间戳在 Python 中转换为 UTC 时区
对于给定的年份,此代码返回该年开始和结束的可读和 Unix 纪元时间。
如何简化此操作并将其默认为 UTC 时间而不是本地时区?我将不胜感激任何指示。谢谢。
#!/usr/bin/env python3
from datetime import datetime
import pytz
tz = pytz.utc
fmt = '%Y-%m-%d %H:%M:%S%z'
def unix_time(date):
timestamp = datetime.strptime(date,fmt).strftime('%s')
return str(timestamp) #unix timestamp
def first_of(year):
first = str(datetime(year,1,tzinfo=tz)) #yyyy-01-01 00:00
times = [first,unix_time(first)]
return times
def last_of(year):
last = str(datetime(year,12,31,23,59,tzinfo=tz)) #yyyy-12-31 23:59
times = [last,unix_time(last)]
return times
year = 2021
print(first_of(year),last_of(year),sep='\n')
解决方法
不要在字符串、整数和 datetime
对象之间进行所有不必要的转换,您的代码已经简单得多:
from datetime import datetime,timezone
year = 2021
first = datetime(year,1,tzinfo=timezone.utc)
last = datetime(year,12,31,59,tzinfo=timezone.utc)
print(first,first.timestamp(),last,last.timestamp())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。