1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > python日期模块datetime常用操作总结(字符串与datetime对象互转 日期差值计算 时间

python日期模块datetime常用操作总结(字符串与datetime对象互转 日期差值计算 时间

时间:2023-05-09 01:03:18

相关推荐

python日期模块datetime常用操作总结(字符串与datetime对象互转 日期差值计算 时间

在python中,自带的datetime和time两个时间模块在平时的使用中可以满足我们绝大多数的需求,但是由于缺乏对这些模块深度的了解和使用,导致平时能够使用到的时间功能十分有限,例如:对于time模块,我的使用几乎就是停留在程序运行时间的统计和时间戳生成这两个方面了。其实时间模块功能还是很强大的,最近正好做的东西里面有一个需求就是给定当前的一个时刻比如精确到了小时的粒度,要生成未来n个连续时刻的时间,这里简单地实现了这个功能,顺便也抽时间将之前用到的一些操作也一起总结一下记录在这里备忘。

详细的功能说明我都加在代码里面了,就不再多解释了,具体如下:

#!usr/bin/env python#encoding:utf-8from __future__ import division'''__Author__:沂水寒城功能:python datetime 常用操作总结'''import timeimport datetimedef generateNextTimestamp(start='-12-07 11:35:13',num=30):'''以给定的当前时刻为起点,生成未来时刻的时间戳(以小时为例)'''res_list=[]now_time=datetime.datetime.now()now_time=datetime.datetime.strptime(start,'%Y-%m-%d %H:%M:%S')for i in range(num):now_time+=datetime.timedelta(hours=1)next_timestamp=now_time.strftime('%Y-%m-%d %H:%M:%S')print next_timestampres_list.append(next_timestamp)print res_listreturn res_listdef datetime2String(timestamp,format='%Y-%m-%d %H:%M:%S'):'''把datetime转成字符串'''res=timestamp.strftime(format)print 'res: ',resreturn resdef string2Datetime(timestamp,format='%Y-%m-%d %H:%M:%S'):'''把字符串转成datetime'''res=datetime.datetime.strptime(timestamp,format)print 'res: ',resreturn resdef string2Timestamp(timestamp):'''把字符串转成时间戳形式'''res=time.mktime(string2Datetime(timestamp).timetuple())print 'res: ',resreturn resdef timestamp2String(timestamp,format='%Y-%m-%d %H:%M:%S'):'''把时间戳转成字符串形式'''res=time.strftime("%Y-%m-%d-%H", time.localtime(timestamp))print 'res: ',resreturn resdef datetime2Timestamp(one_data):'''把datetime类型转为时间戳形式'''res=time.mktime(one_data.timetuple())print 'res: ',resreturn resdef string2Array(timestr='-11-11 11:11:11',format='%Y-%m-%d %H:%M:%S'):'''将字符串转化为时间数组对象'''timeArray=time.strptime(timestr,format)print 'timeArray: ',timeArrayprint 'year: ',timeArray.tm_yearprint 'month: ',timeArray.tm_monprint 'day: ',timeArray.tm_mdayprint 'hour: ',timeArray.tm_hourprint 'minute: ',timeArray.tm_minprint 'second: ',timeArray.tm_secdef getNowTime():'''获取当前时间'''now=datetime.datetime.now()print 'now: ',nowtimeStamp=now.strftime("%Y-%m-%d %H:%M:%S")print 'timeStamp: ',timeStamp timeStamp2=now.strftime("%Y-%m-%d %H-%M-%S")print 'timeStamp: ',timeStamp2timeStamp3=now.strftime("%Y/%m/%d/%H/%M/%S")print 'timeStamp: ',timeStamp3 def calTimeDelta(timestamp1='-11-16 19:21:22',timestamp2='-12-07 10:21:22',format='%Y-%m-%d %H:%M:%S'):'''计算给定的两个时间之间的差值'''T1=datetime.datetime.strptime(timestamp1,format)T2=datetime.datetime.strptime(timestamp2,format)delta=T2-T1day_num=delta.dayssec_num=delta.secondsprint 'day_num: ',day_numprint 'sec_num: ',sec_numif __name__=='__main__':generateNextTimestamp(start='-12-07 11:35:13',num=30)print '-*'*40datetime2Timestamp(datetime.datetime.now())print '-*'*40datetime2String(datetime.datetime.now(),format='%Y-%m-%d %H:%M:%S')print '-*'*40string2Datetime('-12-07 11:35:13',format='%Y-%m-%d %H:%M:%S')print '-*'*40string2Timestamp('-12-07 11:35:13')print '-*'*40timestamp2String(time.time(),format='%Y-%m-%d %H:%M:%S')print '-*'*40string2Array()print '-*'*40getNowTime()print '-*'*40calTimeDelta()

简单对上述各个函数测试了一下,结果如下:

-12-07 12:35:13-12-07 13:35:13-12-07 14:35:13-12-07 15:35:13-12-07 16:35:13-12-07 17:35:13-12-07 18:35:13-12-07 19:35:13-12-07 20:35:13-12-07 21:35:13-12-07 22:35:13-12-07 23:35:13-12-08 00:35:13-12-08 01:35:13-12-08 02:35:13-12-08 03:35:13-12-08 04:35:13-12-08 05:35:13-12-08 06:35:13-12-08 07:35:13-12-08 08:35:13-12-08 09:35:13-12-08 10:35:13-12-08 11:35:13-12-08 12:35:13-12-08 13:35:13-12-08 14:35:13-12-08 15:35:13-12-08 16:35:13-12-08 17:35:13['-12-07 12:35:13', '-12-07 13:35:13', '-12-07 14:35:13', '-12-07 15:35:13', '-12-07 16:35:13', '-12-07 17:35:13', '-12-07 18:35:13', '-12-07 19:35:13', '-12-07 20:35:13', '-12-07 21:35:13', '-12-07 22:35:13', '-12-07 23:35:13', '-12-08 00:35:13', '-12-08 01:35:13', '-12-08 02:35:13', '-12-08 03:35:13', '-12-08 04:35:13', '-12-08 05:35:13', '-12-08 06:35:13', '-12-08 07:35:13', '-12-08 08:35:13', '-12-08 09:35:13', '-12-08 10:35:13', '-12-08 11:35:13', '-12-08 12:35:13', '-12-08 13:35:13', '-12-08 14:35:13', '-12-08 15:35:13', '-12-08 16:35:13', '-12-08 17:35:13']-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*res: 1544147401.0-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*res: -12-07 09:50:01-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*res: -12-07 11:35:13-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*res: -12-07 11:35:13res: 1544153713.0-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*res: -12-07-09-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*timeArray: time.struct_time(tm_year=, tm_mon=11, tm_mday=11, tm_hour=11, tm_min=11, tm_sec=11, tm_wday=6, tm_yday=315, tm_isdst=-1)year: month: 11day: 11hour: 11minute: 11second: 11-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*now: -12-07 09:50:01.365000timeStamp: -12-07 09:50:01timeStamp: -12-07 09-50-01timeStamp: /12/07/09/50/01-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*day_num: 20sec_num: 54000

时间模块还是很强大的,欢迎交流!

python日期模块datetime常用操作总结(字符串与datetime对象互转 日期差值计算 时间戳获取 时间数组生成等)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。