簡體   English   中英

python date unix 1天丟失

[英]python date unix 1 day is lost

提取一天時,python中出現錯誤。 我要轉換為Unix並提取一天,但是3月11日-無論數據集有多大,總是會丟失。 誰能告訴我這是什么錯誤?

from time import localtime, mktime, strptime, strftime
day = str(20180313)
one_day = 86400
for i in range(1,5):
    print(day)
    previous_day_unix = int( mktime( strptime( day, "%Y%m%d")))-one_day
    day = strftime("%Y%m%d", localtime(int(previous_day_unix)))
    print(day)

夏令時2018開始於2018年3月11日凌晨2:00。因此,這一天不是86400秒。

如您所見,減去86400秒並不是計算天數差異的好方法。 通常,由於時區,夏令時和leap年等因素,所有日期/時間“算術”運算都比簡單的乘法和加法復雜一些。

更好的方法是使用一個庫,例如datetime ,它為您處理所有這些事情:

from datetime import datetime, timedelta
day = str(20180313)
for i in range(1, 5):
    print(day)
    previous_day = (datetime.strptime(day, "%Y%m%d") - timedelta(days=1))
    day = previous_day.strftime("%Y%m%d")
#20180313
#20180312
#20180311
#20180310

暫無
暫無

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

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