Python中time模块的用法 深藏阁楼爱情的钟 2022-11-25 01:00 163阅读 0赞 前言:在平常的代码中,我们常常需要与时间打交道。那么在Python中,与时间处理有关的模块就包括:`time`,`datetime`以及`calendar`,本篇博文讲主要讲解time模块。官方文档:[time-时间访问和转换][time-] ### 文章目录 ### * * 一、表示时间的方式 * 二、常用函数汇总 ## 一、表示时间的方式 ## 1. **时间戳表示法:** 即以整型或浮点型表示的是一个以秒为单位的时间间隔。这个时间的基础值是从1970年的1月1号零点开始算起。 2. **格式化的时间字符串:** 即以格式化字符串的格式输出时间形式。 3. **元组格式表示法:** 即一种Python的数据结构表示。这个元组有9个整型内容(不能少),分别表示不同的时间含义。 <table> <thead> <tr> <th>索引(Index)</th> <th>属性(Attribute)</th> <th>值(Values)</th> </tr> </thead> <tbody> <tr> <td>0</td> <td>tm_year(年)</td> <td>比如2011</td> </tr> <tr> <td>1</td> <td>tm_mon(月)</td> <td>1 - 12</td> </tr> <tr> <td>2</td> <td>tm_mday(日)</td> <td>1 - 31</td> </tr> <tr> <td>3</td> <td>tm_hour(时)</td> <td>0 - 23</td> </tr> <tr> <td>4</td> <td>tm_min(分)</td> <td>0 - 59</td> </tr> <tr> <td>5</td> <td>tm_sec(秒)</td> <td>0 - 61</td> </tr> <tr> <td>6</td> <td>tm_wday(weekday)</td> <td>0 - 6(0表示周日)</td> </tr> <tr> <td>7</td> <td>tm_yday(一年中的第几天)</td> <td>1 - 366</td> </tr> <tr> <td>8</td> <td>tm_isdst(是否是夏令时)</td> <td>默认为-1</td> </tr> </tbody> </table> ## 二、常用函数汇总 ## 1. time.time( ):返回当前时间的时间戳。 import time print(time.time()) # 1596760621.3079221 1. time.ctime(\[secs\]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。 import time print(time.ctime()) # Fri Aug 7 08:38:01 2020 1. time.localtime(\[secs\]):将一个时间戳转换为当前时区的struct\_time。secs参数未提供,则以当前时间为准。 import time print(time.localtime()) # time.struct_time(tm_year=2020, tm_mon=8, tm_mday=7, tm_hour=8, tm_min=38, tm_sec=57, tm_wday=4, tm_yday=220, tm_isdst=0) 1. time.gmtime(\[secs\]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct\_time。 import time print(time.gmtime()) # time.struct_time(tm_year=2020, tm_mon=8, tm_mday=7, tm_hour=0, tm_min=39, tm_sec=39, tm_wday=4, tm_yday=220, tm_isdst=0) 1. time.mktime(t):将一个struct\_time转化为时间戳。 import time temp = time.localtime() print(time.mktime(temp)) # 1596760914.0 1. time.sleep(secs):线程推迟指定的时间运行。单位为秒。 import time time.sleep(2) print("我执行了...") # 线程推迟2秒后执行 1. time.asctime(\[t\]):把一个表示时间的元组或者struct\_time表示为这种形式:‘Sun Jun 20 23:21:05 1993’。如果没有参数,将会将time.localtime()作为参数传入。 import time print(time.asctime()) # Fri Aug 7 08:45:23 2020 1. time.strftime(format\[, t\]):把一个代表时间的元组或者struct\_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。 import time print(time.strftime("%Y-%m-%d %H:%M:%S")) # 2020-08-07 08:46:56 **注意:** * 括号中的`%Y-%m-%d %H:%M:%S`需要依次对应,哪个字符对应年,月,日,星期要准确才能正常打印出。 <table> <thead> <tr> <th>格式</th> <th>含义</th> <th>备注</th> </tr> </thead> <tbody> <tr> <td>%a</td> <td>本地(locale)简化星期名称</td> <td></td> </tr> <tr> <td>%A</td> <td>本地完整星期名称</td> <td></td> </tr> <tr> <td>%b</td> <td>本地简化月份名称</td> <td></td> </tr> <tr> <td>%B</td> <td>本地完整月份名称</td> <td></td> </tr> <tr> <td>%c</td> <td>本地相应的日期和时间表示</td> <td></td> </tr> <tr> <td>%d</td> <td>一个月中的第几天(01 - 31)</td> <td></td> </tr> <tr> <td>%H</td> <td>一天中的第几个小时(24小时制,00 - 23)</td> <td></td> </tr> <tr> <td>%I</td> <td>第几个小时(12小时制,01 - 12)</td> <td></td> </tr> <tr> <td>%j</td> <td>一年中的第几天(001 - 366)</td> <td></td> </tr> <tr> <td>%m</td> <td>月份(01 - 12)</td> <td></td> </tr> <tr> <td>%M</td> <td>分钟数(00 - 59)</td> <td></td> </tr> <tr> <td>%p</td> <td>本地am或者pm的相应符</td> <td>一</td> </tr> <tr> <td>%S</td> <td>秒(01 - 61)</td> <td>二</td> </tr> <tr> <td>%U</td> <td>一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。</td> <td>三</td> </tr> <tr> <td>%w</td> <td>一个星期中的第几天(0 - 6,0是星期天)</td> <td>三</td> </tr> <tr> <td>%W</td> <td>和%U基本相同,不同的是%W以星期一为一个星期的开始。</td> <td></td> </tr> <tr> <td>%x</td> <td>本地相应日期</td> <td></td> </tr> <tr> <td>%X</td> <td>本地相应时间</td> <td></td> </tr> <tr> <td>%y</td> <td>去掉世纪的年份(00 - 99)</td> <td></td> </tr> <tr> <td>%Y</td> <td>完整的年份</td> <td></td> </tr> <tr> <td>%Z</td> <td>时区的名字(如果不存在为空字符)</td> <td></td> </tr> <tr> <td>%%</td> <td>‘%’字符</td> <td></td> </tr> </tbody> </table> **备注:** * “%p”只有与“%I”配合使用才有效果。 * 文档中强调确实是0 - 61,而不是59,闰年秒占两秒。 * 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。 [time-]: https://docs.python.org/3/library/time.html
还没有评论,来说两句吧...