跨越月份界限的日期时间戳



从今天起,我将连续几天为中午创建一系列时间戳。这很好,除了从9月开始试图越境时:

import time
from datetime import date, timedelta, datetime
today = datetime.today()
str_date = today.strftime('%Y%m%d')
int_date = int(str_date)
for i in range(0, 7):
run_date = str(int_date + int(i))
string_datetime = ''.join((str(run_date), '120000'7))
timestamp = datetime.strptime(string_datetime, '%Y%m%d%H%M%S').timestamp()
t = str(timestamp).replace('.0', '')
print(run_date, t)

在这种情况下,我得到以下错误:

Traceback (most recent call last):
File "G:/myfolder/myfile.py", line 12, in <module>
timestamp = datetime.strptime(string_datetime, '%Y%m%d%H%M%S').timestamp()
File "G:Python36lib_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "G:Python36lib_strptime.py", line 528, in _strptime
datetime_date(year, 1, 1).toordinal() + 1
ValueError: day is out of range for month

我需要修改代码中的哪些内容?

目前还不完全清楚您试图用字符串操作做什么,但您有一个datetime对象,正确的增量方法是用timedelta对象,如下所示。你想做一些不同的事情吗?

from datetime import datetime, timedelta
today = datetime.today()
print(today)
for additional_days in range(1, 7):
new_day = today + timedelta(days=additional_days)
print(new_day)

结果:

2020-09-28 12:55:40.155671
2020-09-29 12:55:40.155671
2020-09-30 12:55:40.155671
2020-10-01 12:55:40.155671
2020-10-02 12:55:40.155671
2020-10-03 12:55:40.155671
2020-10-04 12:55:40.155671

最新更新