python----time模块

一、了解历史

1.计算机元年:1970年1月1日  00时00分00秒

   以前计算机操作系统是32位,一个int类型的数据是32位,它表示的范围是:-2147483648 ~ 2147483647,用它来代表秒钟数进行计算:只有68.1年的时间。也就是说用这个数来表示时间如果从公元元年开始算显然不够用,所以综合当时UNIX的发展历程,取了1970年1月1日0时0分0秒做为计算机元年,用于计时的开始。

2.2038年问题

   32位表示最后时间到了2038年1月19日03时14分07秒,便达到了最大值,过了这个时间点,数据越界变成最小值:-2147483648。代表的时间就是1901年12月13日20时45分52秒,出现时间回归的现象,很多依赖时间的软件就会出现异常。发展所导致的问题只能通过进一步发展解决,随着64为操作系统的普及,现在用64位操作 系统可以表示到292277026596年12月4日15时30分08秒了。也就是2900亿年以后。

3.UTC时间

          在1884年,为了克服时间上的混乱,在华盛顿召开了一次国际经度会议(又称国际子午线会议),当时将全球划分为24个时区。规定英国(格林尼治天文台)为中时区,每个时区跨15经度,时间正好时1小时,最后东、西的第12时区各跨7.5度。至于为什么英国时0时区,因为当时人家牛p,是日不落。

二、常用函数 

使用import time来调用time模块

1. time.time()

返回从计算机元年到现在的时间(以秒为单位)。如果系统时钟提供小数秒,则可能会出现小数秒

print(time.time()) # 输出:1638348236.3917518

2. time.thread_time()

分析线程时间:内核和用户空间CPU时间之和

print(time.thread_time())  # 输出:0.0625

3. time.clock()

返回自进程开始或之后的CPU时间或实时时间对clock()的第一次调用。这与系统的精度一样高。
在Python 3.3中,time.clock已被弃用,并将从Python 3.8中删除:改用time.perf_counter或time.process_time

print(time.clock())    # 输出:0.0338435

4. time.sleep(secnd)

将执行延迟给定的秒数,就是让程序睡一会再跑,具体睡多久,括号里面给具体时间

print(time.sleep(2))  # 括号里是2,程序睡两秒再执行,打印会显示None

5. time.time_ns()

返回自历元以来的当前时间(以纳秒为单位)

print(time.time_ns())  # 输出:1638348716267450500

6. time.gmtime(second)

括号里不加参数,显示当前的格林尼治时间,也就是UTC时间

括号里加参数,显示从计算机元年过了(参数)秒的时间

print(time.gmtime())   输出:time.struct_time(tm_year=1974, tm_mon=12, tm_mday=15, tm_hour=1, tm_min=6, tm_sec=0, tm_wday=6, tm_yday=349, tm_isdst=0)

print(time.gmtime(10000000))   输出: time.struct_time(tm_year=1970, tm_mon=4, tm_mday=26, tm_hour=17, tm_min=46, tm_sec=40, tm_wday=6, tm_yday=116, tm_isdst=0)

7. time.ctime(second)

 把从计算机元年起的时间(秒)转换为本地时间的字符串。

不加参数返回此时此刻的时间

print(time.ctime(123123))   # 输出:Fri Jan  2 18:12:03 1970

print(time.ctime())    # 输出:Wed Dec  1 18:53:33 2021

8.time.strftime('')

 根据格式规范将时间元组转换为字符串

# print(time.strftime('%Y-%m-%d   %H:%M:%S  %z %a %A %b %B ---%c--- %I %p'))   

# 输出:2021-12-01   19:12:47  +0800 Wed Wednesday Dec December ---Wed Dec  1 19:12:47 2021--- 07 PM
%Y  年
%m  月
%d  日
%H  小时
%M  分钟
%S  秒
%z  在哪个时区
%a  缩写的星期几
%A  完整的星期几
%b  区域设置的缩写月份名称
%B  区域设置的完整月份名称
%c  语言环境的适当日期和时间表示
%I  小时(12小时时钟)
%p  语言环境相当于AM或PM

9. time.strptime('','')

将其转化为机构化时间,前后必须对应

print(time.strptime('2021-12-1','%Y-%m-%d'))   # 将其转化为机构化时间,前后必须对应
a = time.strptime('2021-12-1','%Y-%m-%d')
print(a.tm_year)  # 可以通过这种方式去取
                  # 输出:2021

10. time.localtime()

返回结构化时间,里面加参数,就从计算机元年开始算

print(time.localtime()) # 返回结构化时间,里面加参数,就从计算机元年开始算
a = time.localtime()
print(a.tm_year)  # 可以通过这种方式去取
                  # 输出:2021

11. time.mktime()

将本地时间中的时间元组转换为时间戳(自历元起的秒数)

print(time.mktime(time.localtime()))    # 输出: 1638358856.0

12. datatime模块

import datetime
a = datetime.datetime.now()
print(a)   # 输出:2021-12-01 19:43:11.598313

你可能感兴趣的:(python基础,python,开发语言,后端)