鑒于我有一個時間戳:date_time_str = '2019-09-10T13:48:06+0200'如何計算當(dāng)前時間和這個日期時間之間的時差?到目前為止,我給人的印象是嚴(yán)重的不法行為——這應(yīng)該可以通過一種更簡單的方式來實(shí)現(xiàn):from datetime import datetime, timezoneimport timedate_time_str = '2019-09-10T13:48:06+0200'format = '%Y-%m-%dT%H:%M:%S%z'date_time_obj = datetime.strptime(date_time_str, format)now = datetime.now()now_time = now.strftime(format)print(now_time)now=datetime.strptime(datetime.fromtimestamp(int(time.time()), tz=timezone.utc).isoformat(), format)print("now is: %s" % now)print(now-time_obj)上述程序不起作用,因為當(dāng)前時間的格式略有不同:'2019-09-10T15:56:11+00:00'也就是說,如果你運(yùn)行上面的腳本,例如 Python 3.6.5,你會得到錯誤:ValueError: time data '2019-09-10T18:18:09+00:00' does not match format '%Y-%m-%dT%H:%M:%S%z'時區(qū)格式不匹配,“+00:00”與“+0200”。
1 回答

www說
TA貢獻(xiàn)1775條經(jīng)驗 獲得超8個贊
您可以使用datetime.now()UTC 格式獲取當(dāng)前日期時間:
# Same as your code
from datetime import datetime, timezone
date_time_str = '2019-09-10T13:48:06+0200'
format = '%Y-%m-%dT%H:%M:%S%z'
date_time_obj = datetime.strptime(date_time_str, format)
# Added:
print(datetime.now(tz=timezone.utc))
# 2019-09-10 18:35:48.066548+00:00
print(datetime.now(tz=timezone.utc) - date_time_obj)
# 6:47:42.066548
添加回答
舉報
0/150
提交
取消