[英]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.