time模块
2018-11-20 03:25:36来源:博客园 阅读 ()
一、时间戳
- 返回从1970年01月01日00点00分00秒到现在一共经过了多少秒。用float表示
import time print(time.time()) # 1542203668.0212119
二、格式化时间
- 根据需求对时间进行任意的格式化
import time s = time.strftime("%Y-%m-%d %H:%M:%S") print(s) # 2018-11-14 22:01:40
中文:
import time # 中文 import locale locale.setlocale(locale.LC_CTYPE, "chinese") s = time.strftime("%Y年%m月%d日") print(s) # 2018年11月18日
日期格式化标准:
- %y:两位数的年份表示(00-99)
- %Y:四位数的年份表示(000-999)
- %m:月份(01-12)
- %d:月内中的一天(0-31)
- %H:24小时制小时数(0-23)
- %I:12小时制小时数(01-12)
- %M:分钟数(00-59)
- %a:本地简化星期名称
- %A:本地完整星期名称
- %b:本地简化的月份名称
- %B:本地完整的月份名称
- %c:本地相应的日期表示和时间表示
- %j:年内的一天(001-366)
- %p:本地A.M或P.M的等价符
- %U:一年中的星期数(00-53)星期天为星期的开始
- %w:星期(0-6),星期天为星期的开始
- %W:一年中的星期数(00-53)星期一为星期的开始
- %x:本地相应的日期表示
- %X:本地相应的时间表示
- %Z:当前时区的名称
- %%:%本身
三、 结构化时间
时间戳不能直接转化成格式化时间,须先转化为结构化时间,再由结构化时间转化为格式化时间
同理,格式化时间转化为时间戳,须先转化为结构化时间,再由结构化时间转化为时间戳
1. localtime
- 东八区时间
import time t = time.localtime(1888888888) print(t) # time.struct_time(tm_year=2029, tm_mon=11, tm_mday=9, tm_hour=11, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=0) s = time.strftime("%Y-%m-%d %H:%M:%S", t) print(s) # 2029-11-09 11:21:28
2. gmtime
- 格林尼治时间
import time t = time.gmtime(1888888888) print(t) # time.struct_time(tm_year=2029, tm_mon=11, tm_mday=9, tm_hour=3, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=0) s = time.strftime("%Y-%m-%d %H:%M:%S", t) print(s) # 2029-11-09 03:21:28
四、时间转换
1. 时间戳 ------> 格式化时间
- localtime/gmtime + strftime
import time t = time.localtime(1888888888) print(t) # time.struct_time(tm_year=2029, tm_mon=11, tm_mday=9, tm_hour=11, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=0) s = time.strftime("%Y-%m-%d %H:%M:%S", t) print(s) # 2029-11-09 11:21:28
2. 格式化时间 ------> 时间戳
1) strptime(string, 格式)
将格式化时间转化为结构化时间
2) mktime()
将结构化时间转化为时间戳
import time s = "2029-11-09 11:21:28" t = time.strptime(s, "%Y-%m-%d %H:%M:%S") print(t) # time.struct_time(tm_year=2029, tm_mon=11, tm_mday=9, tm_hour=11, tm_min=21, tm_sec=28, tm_wday=4, tm_yday=313, tm_isdst=-1) tt = time.mktime(t) print(tt) # 1888888888.0
五、时间差
方法一:
import time begin = "2018-11-14 16:30:00" end = "2018-11-14 18:00:00" begin_struct_time = time.strptime(begin, "%Y-%m-%d %H:%M:%S") end_struct_time = time.strptime(end, "%Y-%m-%d %H:%M:%S") begin_second = time.mktime(begin_struct_time) end_second = time.mktime(end_struct_time) diff_time_sec = end_second - begin_second diff_hour, diff_min_1 = divmod(diff_time_sec, 3600) diff_min, diff_sec = divmod(diff_min_1, 60) print("时间差是 %s小%s分钟%s秒" % (int(diff_hour), int(diff_min), int(diff_sec))) 结果: 时间差是 1小30分钟0秒
方法二:
import time begin = "2018-11-14 16:30:00" end = "2018-11-14 18:00:00" begin_struct_time = time.strptime(begin, "%Y-%m-%d %H:%M:%S") end_struct_time = time.strptime(end, "%Y-%m-%d %H:%M:%S") begin_second = time.mktime(begin_struct_time) end_second = time.mktime(end_struct_time) diff_time_sec = abs(begin_second - end_second) # 秒级时间差 # 转化成结构化时间 t = time.gmtime(diff_time_sec) # 用格林尼治时间,否则会有时间差 # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=1, tm_min=30, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0) print("时间差是%s年 %s月 %s天 %s小时 %s分钟" % (t.tm_year - 1970, t.tm_mon - 1, t.tm_mday - 1, t.tm_hour, t.tm_min)) 结果: 时间差是0年 0月 0天 1小时 30分钟
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Python中的tuple
- python3 enum模块的应用 2019-08-13
- pycharm 新建py文件写时有作者和时间 2019-08-13
- 利用python自动生成verilog模块例化模板 2019-08-13
- Python random模块(以后用到一个再更新一个) 2019-07-24
- xadmin进行全局配置(修改模块名为中文以及其他自定义的操作 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash