有时候我们想生成一个时间段的return,比如2022-01-0100:00:00之后的10天,所以10个datetime对象,但是又不想计算哪些月份有30天,哪些月份有31天。方法一:使用timedeltaDatetime包含timedelta,可以用来实现这个功能fromdatetimeimportdatetime,timedelta,timezonefrompydantic.datetime_parseimportparse_datetimefromloguruimportloggerSECOND:int=1MINUTE:int=SECOND*60HOUR:int=MINUTE*60DAY:int=HOUR*24WEEK:int=DAY*7MONTH:int=DAY*30defget_utc_now_timestamp(with_tzinfo:bool=True)->datetime:"""https://blog.csdn.net/ball4022/article/details/101670024"""如果不是with_tzinfo:returndatetime.utcnow()returndatetime.utcnow().replace(tzinfo=timezone.utc)deftimedelta_seconds(start_time:datetime,end_time:datetime=None)->int:"""返回两次以秒为单位的差异"""如果不是end_time:end_time=get_utc_now_timestamp()returnint((end_time-start_time).total_seconds())defcustom_timestamp(base_timestamp:datetime,seconds:int,reduce=False):returnbase_timestamp+timedelta(seconds=seconds)\如果不减少\elsebase_timestamp-timedelta(seconds=seconds)start_datetime=parse_datetime('2022-02-2700:00:00')data=[dtfordtin[custom_timestamp(start_datetime,DAY*i)foriinrange(10)]]logger.debug(data)输出如下:╰─?python-u"/Users/ponponon/Desktop/code/me/ideaboom/main.py"2022-11-1515:18:37.653|调试|__main__:<模块>:67-[datetime.datetime(2022,2,27,0,0),datetime.datetime(2022,2,28,0,0),datetime.datetime(2022,3,1,0),0),datetime.datetime(2022,3,2,0,0),datetime.datetime(2022,3,3,0,0),datetime.datetime(2022,3,4,0,0),datetime.datetime(2022,3,5,0,0),datetime.datetime(2022,3,6,0,0),datetime.datetime(2022,3,7,0,0),datetime.datetime(2022,3,8,0,0)]使用arrow这个第三方库importarrowfromloguruimportloggerfrompydantic.datetime_parseimportparse_datetimefor箭头中的crawl_date.Arrow.range('day',parse_datetime('2022-02-2700:00:00'),parse_datetime('2022-03-1000:00:00')):logger.debug(crawl_date.datetime)输出如下:╰─?python-u"/Users/ponponon/Desktop/code/me/ideaboom/datetime_arrow_range.py"2022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-02-2700:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-02-2800:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0100:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0200:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0300:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0400:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0500:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0600:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0700:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0800:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-0900:00:00+00:002022-11-1515:28:52.130|调试|__main__:<模块>:6-2022-03-1000:00:00+00:00
