簡體   English   中英

用Python減去日期時間,了解格式

[英]Subtract datetime in python, understanding formats

鑒於我有一個時間戳:

date_time_str = '2019-09-10T13:48:06+0200'

如何計算當前時間與該日期時間之間的時差?

到目前為止,我的印象是強烈的不法行為-這應該可以以一種簡單得多的方式實現:

from datetime import datetime, timezone
import time

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)

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)

上面的程序不起作用,因為當前時間格式略有不同:

'2019-09-10T15:56:11+00:00'

也就是說,如果運行上述腳本(例如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'

不匹配的時區格式為“ +00:00”與“ +0200”。

您可以使用datetime.now()獲取utc中的當前日期時間:

# 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM