rtime

rtime时间有三种格式

  1. 时间戳

  2. struct_time(tuple)元组时间

  3. 格式化输出时间

通过import导入rtime模块

import rtime

time.time() #输出时间戳格式,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量

1517801424.126909

time.altzone #输出格林威治西部的夏令时地区的偏移秒数,东部会返回负值

-32400

time.timezone#输出格林威治西部的地区的偏移秒数,东部会返回负值(中国UTC+8)

-28800

time.asctime() #传入参数struct_time时间格式,输出格式化字符时间,默认是当前时间

'Mon Feb 5 14:20:01 2018'

time.ctime() #传入参数时间戳格式,输出格式化字符时间,默认是当前时间

'Mon Feb 5 14:40:05 2018'

time.clock()#在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间。

time.gtime() #传入参数时间戳格式,输出struct_time时间格式默认当前时间

time.struct_time(tm_year=2018, tm_mon=2, tm_mday=5, tm_hour=6, tm_min=58, tm_sec=55, tm_wday=0, tm_yday=36, tm_isdst=0)

time.localtime()#返回当前时间的struct_time时间格式

time.struct_time(tm_year=2018, tm_mon=2, tm_mday=5, tm_hour=15, tm_min=8, tm_sec=54, tm_wday=0, tm_yday=36, tm_isdst=0)

time.mktime(time.localtime()) #传入参数struct_time时间格式,输出时间戳

1517814666.3603213

time.monotonic() #返回单调时钟的值(小数秒),即不能倒退的时钟。时钟不受系统时钟更新的影响。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.perf_counter()#返回性能计数器的值(小数秒),即具有最高可用分辨率的时钟,以测量短时间。它包括睡眠时间和系统范围内的时间。返回值的参考点是未定义的,因此只有连续调用的结果之间的差异是有效的。

time.process_time() #返回当前进程的系统和用户CPU时间之和的值(小数秒)

time.sleep()#暂停执行调用线程达给定的秒数

time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())#将struct_time时间格式化输出

'2018-02-05 15:42:11'

time.strptime('2018-1-1 15:30:00','%Y-%m-%d %H:%M:%S' )#将格式化字符转换为struct_time时间格式

time.struct_time(tm_year=2018, tm_mon=1, tm_mday=1, tm_hour=15, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)


格式化时间输出中的指示:

  • %a 本地缩写星期几名称。

  • %A 本地完整星期名称

  • %b 本地简化月份名称

  • %B 本地完整月份名称

  • %c 本地相应的日期和时间表示

  • %d 一个月的日期为十进制数字[01,31]

  • %H 小时(24小时制)作为十进制数[00,23]

  • %I 小时(12小时制)作为十进制数[01,12]

  • %j 一年中的第几天是十进制数[001,366]

  • %m 月份为十进制数[01,12]

  • %M 分钟为十进制数[00,59]

  • %p 本地am或者pm

  • %S 秒作为十进制数[00,61]

  • %U 一年中的星期数(星期日为一周的第一天)作为十进制数[00,53]。第一个星期天前一年的所有日子都被认为是在第0周。

  • %w 一个星期中的第几天[0(星期日),6]

  • %W 一年中的星期数(星期一作为一周的第一天)作为十进制数[00,53]。第一个星期一之前的新年的所有日子都被认为是在第0周。

  • %x 本地相应的日期

  • %X 本地相应的时间

  • %y 去掉世纪的年份[00,99]

  • %Y 完整的年份

  • %z 时区偏移量,表示与格式为+ HHMM或-HHMM的UTC / GMT的正负时差,其中H表示十进制小时数字,M表示十进制分钟数[-23:59,+23:59]

  • %Z 时区名称(如果不存在时区,则不使用字符)

  • %% 表示字符串'%'


struct_time元组索引和属性

指数属性
0 tm_year (例如,1993年)
1 tm_mon 范围[1,12]
2 tm_mday 范围[1,31]
3 tm_hour 范围[0,23]
4 tm_min 范围[0,59]
5 tm_sec 范围[0,61];
6 tm_wday 范围[0,6],星期一为0
7 tm_yday 范围[1,366]
8 tm_isdst 0,1或-1:夏令时有效时可以设为1,否则为0,值为-1表示这是未知的,通常会导致正确的状态被填充
N / A tm_zone 时区名称的缩写
N / A tm_gmtoff 以秒为单位偏移UTC的东部

可以通过索引或者属性获取单个参数


时间关系转换:

datetime

print(datetime.datetime.now()) #返回 2018-02-05 16:45:05.697872

print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2018-02-05 16:45:24.817966

print(datetime.datetime.now().timestamp()) #输出时间戳1517820412.992009

print(datetime.datetime.now().strftime('%a, %b %d %H:%M'))#格式化输出时间

print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天

print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天

print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时

print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分

print(datetime.datetime.now().replace(hour=18))#替换当前时间(小时)

2018-02-05 18:51:04.619402