代码改变世界

Python 时间模块

2018-05-03 16:12  钱先生  阅读(183)  评论(0编辑  收藏  举报

模块分类

  • 标准库
    • python解释器自带的, sys, os等
  • 开源模块
    • 比如selenium中的测试框架
  • 自定义模块
    • 比如自己封装的测试框架

 

 

 时间格式

  • 时间戳
    • 当前时间减去1970年1月1日00:00:00.
    • time.time()
    • struct_time 转换成时间戳
      • mktime()
  • struct_time(返回结果以tuple的方式呈现)
    • 时间戳转换成struct_time: time有两种方式
      • gmtime() : 把时间戳传进去; 不传参数的话默认把当前时间传进去, 转换结果会是UTC时区
      • localtime() : 结果为UTC+8时区
    • 格式化的字符串转换成struct_time
      • strptime('格式化的字符串', '格式')  ---> struct_time
  • 格式化的字符串
    • struct_time 转换成格式化的字符串
      • strftime('格式', stuct_time)  ---> 格式化的字符串

 

 

strptime(), 格式中或是换了各个字母的位置, 系统会按照字母的位置去抓取代表其意义的值, 而不是抓取对应位置的值.

比如下图中, %d 代表tm_day, 这个字母没有放在月份后面, 而是放在小时后面, 但是它抓取的值仍然是代表天的20(day)而不是对应位置上的31(minute).

 

 

 

 

 

 

 

 1 import time
 2 x = time.localtime(123213123)
 3 print(x)
 4 
 5 print(x.tm_year)
 6 print('this is 1973 day: %d' %x.tm_yday)
 7 
 8 
 9 print(time.strftime('%Y-%m:%d %H:%M:%S', x))
10 
11 print(time.strptime('2016-08:20 14:31:52', '%Y-%m:%d %H:%M:%S'))
 1 import datetime
 2 
 3 # 当前时间后三天
 4 a = datetime.datetime.now()+datetime.timedelta(3)  # 当天时间+3天. timedelta()不能单独用, 需要和now()联用
 5 print(a)
 6 
 7 
 8 # 当前时间前三个小时
 9 b = datetime.datetime.now()+datetime.timedelta(hours = -3)
10 print(b)