欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python(25)python中的time模块(时间模块)

程序员文章站 2022-05-05 15:26:31
...

什么是时间戳

'''
时间戳是一种用于表示时间的方式。从1970年1月1日0时0分0秒0毫秒开始到指定时间的秒数。世间戳也叫做unix时间戳,1970年1月1日成为unix元年。
作用:是为了方便时间的统一运算。
1.从1970年1月1日开始计算。
2.能够使用到2038年的某一天
3.如果使用太远的未来或者1970年以前的时间可能出现异常
'''



什么是UTC时间

'''
UTC时间又称之为世界协调时间。特指格林尼治天文台所在位置的时间也叫做格林尼治时间。
中国的时区是东八区,和世界协调时间差了8个小时,多个八个小时
'''



time模块的值

import time

#获取当前时区与格林尼治所在时区的相差的秒数(推荐)
time.timezone


#获取当前时区与格林尼治所在时区的相差的秒数(在有夏令时的情况下)
time.altzone



time模块的函数

import time

#根据时间元组制作时间字符串
time.asctime((2001,1,1,1,1,1,0,0,0))
'''
return->
Mon Jan  1 01:01:01 2001
'''


#获取本地时间元组
time.localtime()
'''
return->
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=17, tm_hour=18, tm_min=51, tm_sec=17, tm_wday=2, tm_yday=17, tm_isdst=0)
'''


#获取指定时间的UTC时间元组(不传值时返回当前UTC时间元组,传入参数为时间戳)
time.gmtime()
'''
return->
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=17, tm_hour=10, tm_min=54, tm_sec=24, tm_wday=2, tm_yday=17, tm_isdst=0)
'''


#获取本地时间字符串格式
time.ctime()
'''
return->
Wed Jan 17 18:56:02 2018
'''


#将时间元组转换成时间戳,按本地时间来计算,如果想按照UTC时间计算,则是calendar.timegm()
time.mktime((2018,1,1,1,1,1,0,0,0))
'''
return->
1514739661.0
'''


#cup时钟,用于计算程序的执行时间(仅支持python3.3以下)
def example():
    start_flag = time.clock()
    print('start_time:'+str(start_flag))
    for v in range(10):
        print(v)
    end_flag = time.clock()
    print('end_time:'+str(end_flag))
example()
'''
return->
start_time:0.124539
0
1
2
3
4
5
6
7
8
9
end_time:0.124682
'''


#cpu计数器,主要用于计算程序执行时间,开始获取一次,程序执行完毕在获取一次,相减获得执行总时间,(仅支持python3.3以上)
def example():
    start_flag = time.perf_counter()
    for v in range(100001):
        pass
    end_flag = time.perf_counter()
    return end_flag-start_flag

res = example()
print('use_time:',res)
'''
return->
use_time: 0.0032313870001416944
'''


#程序睡眠(程序等待)
def hello():
    time.sleep(10)  #传入参数单位为sec
    print('hello!')
hello()
'''
10秒种之后打印 hello! 到控制台
'''


#获取当前本地的时间戳
time.time()
'''
return->
1516188470.0992017
'''


#将时间元组使用特定的字符串格式表示
#获取本地时间元组
now_time = time.localtime()
#使用time.strftime进行转换
font_time = time.strftime('%Y年%m月%d日 %H时%M分%S秒',now_time)
print(font_time)
'''
print->
2018年01月17日 19时35分22秒
'''
'''
功能:格式化输出时间字符串(str foramt time)
格式:time.strftime('字符串格式'[,时间元组])
返回值:格式化之后的哦字符串
格式    含义        备注
%a    本地(locale)简化星期名称
%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    秒(01 - 61)    
%U    一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周    
%w    一个星期中的第几天(0 - 6,0 是星期天)    注3
%W    和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始
%X    本地相应时间
%y    去掉世纪的年份(00 - 99)
%Y    完整的年份
%z    用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)
%%    %号本身
'''


#将时间字符串通过指定格式提取到元组中
time_str='2018年01月17日 19时35分22秒'
format_str='%Y年%m月%d日 %H时%M分%S秒'
time_tuple = time.strptime(time_str,format_str)
print(time_tuple)
'''
print->
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=17, tm_hour=19, tm_min=35, tm_sec=22, tm_wday=2, tm_yday=17, tm_isdst=-1)
'''