【发布时间】:2023-03-27 12:22:01
【问题描述】:
对于给定的年份,此代码返回一年的开始和结束的可读和 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, 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')
【问题讨论】:
-
除了你根本不需要
pytz(见deceze的回答),我们在标准库中有2021、Python 3.9和zoneinfo——所以pytz不应该不再使用。旧代码有一个 deprecation shim。
标签: python datetime unix-timestamp epoch pytz