设为首页 收藏本站
查看: 701|回复: 0

[经验分享] 简单记录python的时间函数操作

[复制链接]

尚未签到

发表于 2017-5-4 11:13:56 | 显示全部楼层 |阅读模式
  1. time和datetime模块
   import datetime,time

2. 获得当前时间
   time.time() #获得当前时间,返回float型
   time.localtime([float time]) #获得本地当前时间,返回time.struct_time类型
     
   说明:struct_time是一个只读的9元组,其中参数命名分别如下: 
        
IndexAttributeValues
0 tm_year(for example, 1993)
1tm_mon range [1, 12]
2 tm_mday range [1, 31]
3 tm_hourrange [0, 23]
4 tm_min range [0, 59]
5 tm_sec range [0, 61]
6 tm_wdayrange [0, 6], Monday is 0
7 tm_yday range [1, 366]
8 tm_isdst 0, 1 or -1; see below
  
技巧一:
  那么,如果要进行如时间修改等操作,而struc_time是只读的,如何改变某个时间点的值呢?
  由于元组是不可改变的,而此时需要对localtime()的元组进行处理,元组是列表的另一形式,可以相互转化,列表可以随时修改,因而可以进行如下转化:
     ttTuple = time.localtime()
     ttList = list(ttTuple) #转化为列表
     ttList[4] = 30 #如果您要对第四项tm_min进行修改,此时就可以了
     ..... #列表中值进行修改
     ttTuple = tuple(ttList) #重新转化为元组
     strLocaltime = time.strftime("%Y-%m-%d %X",ttTuple) #转化为2010-07-21 20:30:00

技巧二:
  如何快速处理列表中的每一项数据,例如将列表中所有的整型转化为str类型,并进行字符串处理?
  具体地,例如给定一个浮点时间timer,输出为一个格式为YYYY-mm-dd_hh-mm格式的字符串。
       ttTuple = time.localtime(timer)
       ttList = list(ttTuple)
       strList = map(str,ttList) #将列表中的每项转化为str类型, 但由于是由int转化str
       #单数的时间,1-9无法转化为‘01’,‘02’形式,需要处理
       for i in range(5):
            if(len(strList)%2 != 0):
                 strList = '0' + strList #单数,则补上0
       strTime = strList[0]+'-'+strList[1]+'-'+strList[2]+'_'+strList[3]+'-'+strList[4] #获得目标格式
    
    当然,或者可以利用strLocaltime = time.strftime(format,ttTuple)来解决,没有校验过,可以试试。当时脑袋短路了,只想到这个方法,主要是为了新学的map()函数能够用上,高手请任意拍砖,咱新手一枚。

3.时间相互转化
   time.strftime(format,struc_time) #将元组转化为用户自定义的format格式,返回时间字符串
   time.strptime(str,format) #将format格式的时间字符串str转化为元组,返回struc_time类型
   time.mktime(struc_time) #将元组转化为float类型的时间,返回float类型
  >>> import time
>>> print time.strftime( "%Y-%m-%d %X", time.localtime(123456789)
... )
1973-11-30 05:33:09
  >>> from datetime import datetime
>>> print datetime.fromtimestamp(123456)
1970-01-02 18:17:36
  
技巧三:
   由上述可见,利用floatTime = time.mktime(time.strptime(str,format))可以将时间字符串转化为浮点型时间格式,便于进行时间计算.
  技巧四:
      常用的直接获得当前时间方法:
      now = str(datetime.fromtimestamp(time.mktime(time.localtime())))
    print now

  技巧五:
      精确到毫秒的当前方法:
      now = datetime.today() 
  print now

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-372950-1-1.html 上篇帖子: Python Standard Library (中文版) 目录 下篇帖子: Python字符串类型内建方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表