Python 标准库模块 您所在的位置:网站首页 python中os库 Python 标准库模块

Python 标准库模块

2023-03-30 05:02| 来源: 网络整理| 查看: 265

一. 时间表示方法 时间戳:从格林威治时间 1970 年 01 月 01 日 00 时 00 分 00 秒起至现在的总秒数。 格式化时间字符串。 由 9 个元素组成时间元组 struct_time。

说明:由时间戳的定义可知,在地球上的任何地方时间戳都是相同的。时间戳指的就是 Unix 时间戳,也被称为 Unix 时间、POSIX 时间。

二. 函数使用

Python 中的 time 模块,为我们提供了非常多便利的方法,下面我们就来认识几个常用的函数吧~

localtime([secs]) 将时间戳转换为当前时区的时间元组。若 secs 未提供,则以当前时间为准。

>> import time >> time.localtime() time.struct_time(tm_year=2021, tm_mon=8, tm_mday=18, tm_hour=23, tm_min=28, tm_sec=51, tm_wday=2, tm_yday=230, tm_isdst=0) >> time.localtime(1629300415.4406254) time.struct_time(tm_year=2021, tm_mon=8, tm_mday=18, tm_hour=23, tm_min=26, tm_sec=55, tm_wday=2, tm_yday=230, tm_isdst=0)

gmtime([secs]) 将时间戳转换为 UTC 时区的时间元组,即 0 时区。若 secs 未提供,则以当前时间为准。

>> time.gmtime() time.struct_time(tm_year=2021, tm_mon=8, tm_mday=18, tm_hour=15, tm_min=31, tm_sec=19, tm_wday=2, tm_yday=230, tm_isdst=0) >> time.gmtime(1629300415.4406254) time.struct_time(tm_year=2021, tm_mon=8, tm_mday=18, tm_hour=15, tm_min=26, tm_sec=55, tm_wday=2, tm_yday=230, tm_isdst=0)

对比 gmtime 和 localtime 我们发现,使用同一个时间戳,返回的时间相差 8 小时,这是因为我们国家的标准时区为东八区~

time() 返回当前时间戳。

>> time.time() 1629300415.4406254

mktime(tuple) 将本地时间元组 local_time 或表示时间的元组 local_time[:9] 转换为时间戳。

>> local_time = time.localtime(1629300415.4406254) >> time.mktime(local_time) 1629300415.0 >> local_time[:9] (2021, 8, 18, 23, 26, 55, 2, 230, 0) >> time.mktime(local_time[:9]) 1629300415.0

asctime([tuple]) 把时间元组或者表示时间的元组,转化为 Sun Jun 20 23:21:05 1993 格式的时间字符串。未指定 tuple 参数时,默认用 time.localtime() 的返回的时间元组。

>> time.asctime() 'Thu Aug 19 00:00:34 2021' >> time.asctime(local_time) 'Wed Aug 18 23:26:55 2021' >> time.asctime(local_time[:9]) 'Wed Aug 18 23:26:55 2021'

ctime([secs]) 把一个时间戳转换成 Sun Jun 20 23:21:05 1993 格式的时间字符串,默认用 time.time() 的时间戳。

>> time.ctime() 'Thu Aug 19 00:02:48 2021' >> time.ctime(1629300415) 'Wed Aug 18 23:26:55 2021'

strftime(format[,t]) 把时间元组或者表示时间的元组,转化为格式化的时间字符串。默认用 time.localtime() 返回的本地时间元组。

>> time.strftime('%Y-%m-%d %H:%M:%S') '2021-08-19 00:07:18' >> time.strftime('%Y-%m-%d %H:%M:%S', local_time) '2021-08-18 23:26:55' >> time.strftime('%Y-%m-%d %H:%M:%S', local_time[:9]) '2021-08-18 23:26:55'

strptime(string[, format]) 把一个格式化时间字符串转化为时间元祖,是 time.strftime 的逆操作。

>> time.strptime('2021-08-18 23:26:55', '%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2021, tm_mon=8, tm_mday=18, tm_hour=23, tm_min=26, tm_sec=55, tm_wday=2, tm_yday=230, tm_isdst=-1)

sleep(secs) 休眠多少秒。

print(time.ctime()) time.sleep(10) print(time.ctime())

运行结果:

Thu Aug 19 00:11:43 2021 Thu Aug 19 00:11:53 2021

时间元组:上文提到的时间元组均是指 time.struct_time 返回的实例。该实例支持切片操作,返回一个普通的表示时间的元组。

下面是一个综合示例演示:

import time time0 = time.time() print("当前时间戳:",time0, end='\n\n') # 分别获取获取本地时间元组和UTC时间元组 local_time = time.localtime(time0) UTC_time = time.gmtime() print("本地时间元组:", local_time, end='\n\n') print("世界标准时间元组:", UTC_time, end='\n\n') # 将本地时间元组或表示时间的元组转换为时间戳 time1 = time.mktime(local_time) print("将上述本地时间元组转换为时间戳:", time1, end='\n\n') # 将本地时间元组或表示时间的元组转换为时间字符串 print("使用元组创建 Linux 格式的时间字符串:", time.asctime(local_time[:9]), end='\n\n') # 将时间戳表示为时间字符串 print("使用时间戳创建 Linux 格式的时间字符串:", time.ctime(time0), end='\n\n') # 将本地时间元组或表示时间的元组转换为格式字符串 print("使用元组创建自定义格式的时间字符串:", time.strftime("%Y-%m-%d %H:%M:%S",local_time), end='\n\n') print("使用 time.localtime() 的返回值创建自定义格式的时间字符串:", time.strftime("%Y-%m-%d %H:%M:%S"), end='\n\n') # 将时间格式字符串转换为时间元组 print("解析自定义格式的时间字符串:", time.strptime("2018-01-01 00:00:00", "%Y-%m-%d %H:%M:%S")[:8], end='\n\n')

运行结果:

三. 时间元组简介

时间元组由 9 个整型元素组成,这九个元素从前向后依次为:

四位的年,如: 1993 月 1-12 日 1-31 时 0-23 分 0-59 秒 0-59 星期几 0-6,其中周一是 0 元旦开始日 1-366 夏令时修正时间 -1, 0 或 1

注:如果年份值小于 100,则会自动转换为加上 1900 后的值。

案例演示:输入出生日期,计算出生天数。

"""写一个程序,输入您的出生日期: 1)算出您已经出生多少天? 2)算出你出生的那天是星期几? """ iimport time born_date = input("输入出生日期(格式:YYYYMMDD)") born_tuple = time.strptime(born_date, '%Y%m%d') # 当前时间戳(秒数) - 出生当天时间戳(秒数) secs = time.time() - time.mktime(born_tuple) print("您已经出生了{}天".format(secs // (3600*24))) # 计算出生当天是星期几 birth = time.localtime(time.mktime(born_tuple)) birth_week = birth[6] week_dic = { 0: "星期一", 1: "星期二", 2: "星期三", 3: "星期四", 4: "星期五", 5: "星期六", 6: "星期日" } print("您出生那天是{}".format(week_dic[birth_week]))

运行结果:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有