c语言sscanf函数的用法是什么
251
2022-11-15
PythonNote008---时间处理
常用的时间、日期处理
生成间隔时序list
备用
import datetimedef dateRange(start, end, step=1, inputFormat="%Y-%m-%d", outputFormat="%Y%m%d"): """ startDate:开始时间,字符串类型,默认yyyy-MM-dd endDate:结束时间,字符串类型,默认yyyy-MM-dd format:返回的日期字符串格式,可以指定 """ # strptime字符串转时间 # strftime时间转字符串 strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime days = (strptime(end, inputFormat) - strptime(start, inputFormat)).days return [strftime(strptime(start, inputFormat) + datetime.timedelta(i), outputFormat) for i in range(0, days + 1, step)]
dateRange(start="2020-01-01",end="2020-01-21",step=3)
['20200101', '20200104', '20200107', '20200110', '20200113', '20200116', '20200119']
上面的函数是第一个版本,只提供间隔为天的序列生成函数
通用函数封装
import pandas as pddef timeRange(starttime, endtime, step="15Min", inputFormat='%Y%m%d%H%M', outputFormat='%Y%m%d%H%M'): """ 输入起止时间,返回指定间隔的时间序列 :param starttime: 开始时刻 :param endtime: 截止时刻 :param step: 步长,pands的参数,"Y"-年,"M"-月,"D"-天,"H"-小时,"Min"-分钟 :param inputFormat:输入时间格式 :param outputFormat: 输出时间格式 :return: """ strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftime # 转换数据类型 start_slice_p = strptime(starttime, inputFormat) end_slice_p = strptime(endtime, inputFormat) # 使用pandas提供的date_range函数生成间隔序列,并且转换成指定输出格式 return [x.strftime(outputFormat) for x in pd.date_range(start_slice_p, end_slice_p, freq=step)]
年间隔
timeRange("202001010000", "202501010000", step="1Y")
['202012310000', '202112310000', '202212310000', '202312310000', '202412310000']
月间隔
timeRange(starttime="2020-01-01 00:00:15", endtime="2020-05-01 00:00:15", step="1M", inputFormat='%Y-%m-%d %H:%M:%S', outputFormat='%Y-%m-%d %H:%M:%S')
['2020-01-31 00:00:15', '2020-02-29 00:00:15', '2020-03-31 00:00:15', '2020-04-30 00:00:15']
小时间隔
timeRange(starttime="2020-01-01 00:00:15", endtime="2020-01-01 12:00:15", step="1H", inputFormat='%Y-%m-%d %H:%M:%S', outputFormat='%Y-%m-%d %H:%M:%S')
['2020-01-01 00:00:15', '2020-01-01 01:00:15', '2020-01-01 02:00:15', '2020-01-01 03:00:15', '2020-01-01 04:00:15', '2020-01-01 05:00:15', '2020-01-01 06:00:15', '2020-01-01 07:00:15', '2020-01-01 08:00:15', '2020-01-01 09:00:15', '2020-01-01 10:00:15', '2020-01-01 11:00:15', '2020-01-01 12:00:15']
分钟间隔
timeRange(starttime="2020-01-01 09:15:15", endtime="2020-01-01 11:15:14", step="15Min", inputFormat='%Y-%m-%d %H:%M:%S', outputFormat='%Y-%m-%d %H:%M:%S')
['2020-01-01 09:15:15', '2020-01-01 09:30:15', '2020-01-01 09:45:15', '2020-01-01 10:00:15', '2020-01-01 10:15:15', '2020-01-01 10:30:15', '2020-01-01 10:45:15', '2020-01-01 11:00:15']
秒间隔
timeRange(starttime="2020-01-01 09:15:15", endtime="2020-01-01 09:18:14", step="30S", inputFormat='%Y-%m-%d %H:%M:%S', outputFormat='%Y-%m-%d %H:%M:%S')
['2020-01-01 09:15:15', '2020-01-01 09:15:45', '2020-01-01 09:16:15', '2020-01-01 09:16:45', '2020-01-01 09:17:15', '2020-01-01 09:17:45']
基本调用逻辑都是一样的,如果需要对函数做修改,可以参看pd.date_range的help
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~