文章目录
- 一、time三种表现形式
- 二、time模块常用的方法
- 1.时间戳(timestamp)表现方式
- time.time()
- time.mktime()
- 2.时间元组(struct_itme)表现方式
- time.localtime()
- time.gmtime()
- time.strptime(str,format)
- 3.默认时间字符串(defaut_time)表现方式
- time.asctime()
- time.ctime()
- 4.自定义时间字符串(format_time)表现方式
- time.strftime(format,t)
- 5.其他
- time.sleep()
- 三、时间输出格式转换
- 1.时间戳转为字符串
- 2.时间戳转为时间元组
- 3.字符串转为时间元组
- 4.字符串转换为时间戳
- 5.时间元组转为字符串
- 6.时间元组转换为时间戳(从新纪元后的秒数)
- 附录:python中时间日期格式化符号
一、time三种表现形式
- 时间戳(timestamp)表现方式:1970年1月1日之后的秒。
举例:
time.time()
- 时间元组(struct_itme)表现方式
注意: 时间元组(struct_time)的格式是:
t=(tm_year,tm_mon,tm_mday,tm_hour,tm_min,tm_sec,tm_wday,tm_yday,tm_isdst)
参数解析:
属性 | 说明 |
---|---|
tm_year | (例如:2023年) |
tm_mon | 范围 [1,12] |
tm_mday | 范围 [1,31] |
tm_hour | 范围 [0,23] |
tm_min | 范围 [0,59] |
tm_sec | 范围 [0,61] |
tm_wday | 范围 [0,6] ,星期一为 0 |
tm_yday | 范围 [1,366] |
tm_isdst | 0、1或者-1 |
举例:
time.strptime()
- 时间字符串表现方式
举例:默认时间字符串(defaut_time)表现方式
time.asctime()
默认以 %a %b %d %H:%M:%S %Y 形式展示
举例:自定义时间字符串(format_time)表现方式
time.strftime(‘%b %d %Y %H:%M:%S’,time.gmtime(time.time()))
二、time模块常用的方法
1.时间戳(timestamp)表现方式
time.time()
返回当时时间戳,值为按秒计算的浮点数。
表示从1970年1月1日0点0分开始,到当前时间,一共经历了多少秒
import time
seconds=time.time()
print("Seconds since epoch =",seconds)# 输出:Seconds since epoch = 1699325566.1240547
time.mktime()
返回时间戳,值为按秒计算的浮点数。
将struct_time(或包含9个元素的元组对应于struct_time)作为参数,它是localtime()反函数。
import time
t=(2023,11,7,11,16,31,1,311,0)
print("local time :",time.mktime(t))# 输出:local time : 1699326991.0
2.时间元组(struct_itme)表现方式
time.localtime()
返回时间元组格式(struct_time)。
以从1970年1月1日0点0分开始的秒为参数,格式化时间戳为本地的时间,年月日,时分秒等信息。若未输入参数,默认当前时间。
import timeresult=time.localtime()
print("result:",result)
print("year:",result.tm_year)
print("hour:",result.tm_hour)# 输出:
# result: time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=15, tm_min=5, tm_sec=54, tm_wday=1, tm_yday=311, tm_isdst=0)
# year: 2023
# hour: 15
time.gmtime()
返回时间元组格式(struct_time)。
以从1970年1月1日0点0分开始的秒为参数,格式化时间戳为本地的时间,年月日,时分秒等信息。
import timeresult1=time.gmtime(1699325566.1240547)
print("result:",result)
print("year:",result.tm_year)
print("hour:",result.tm_hour)# 输出:
# result: time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=15, tm_min=5, tm_sec=54, tm_wday=1, tm_yday=311, tm_isdst=0)
# year: 2023
# hour: 15
time.strptime(str,format)
返回时间元组格式(struct_time)。
根据format格式将str一个时间字符解析为时间元组。
import timestruct_time=time.strptime('7 Nov 23',"%d %b %y")
print("返回元组:",struct_time)#输出:返回元组: time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=311, tm_isdst=-1)
3.默认时间字符串(defaut_time)表现方式
time.asctime()
返回默认时间字符串的形式。
将struct_time(或包含9个元素的元组对应于struct_time)作为参数。若未输入参数,默认当前时间。
import timet=(2023,11,7,11,16,31,1,311,0)
print(time.asctime())
print(time.asctime(t))# 输出:'Tue Nov 7 11:16:31 2023'
time.ctime()
返回一个表示本地时间的字符串。
以从1970年1月1日0点0分开始的秒为参数,把时间戳转化为time.asctime()形式
import timelocal_time=time.ctime(1699325566.1240547)
print('local time:',local_time)# 输出:local time: Tue Nov 7 10:52:46 2023
4.自定义时间字符串(format_time)表现方式
time.strftime(format,t)
返回自定义字符串所表示的当地时间,格式由format决定。
参数 t 表示 struct_time(或包含9个元素的元组对应于struct_time)。
import timetime.strftime("%Y-%m-%d %H:%M:%S",time.loacltime())# 输出:'2023-11-07 15:29:21'
5.其他
time.sleep()
功能:在给定的秒数内暂停(延迟)当前线程的执行。
import time
print("hello")
time.sleep(4)
print("4秒后:","world")
三、时间输出格式转换
1.时间戳转为字符串
import time
current_time=time.time()
print(current_time)
print(type(current_time))# 输出:
# 1699347750.380224
# <class 'float'>str_time=time.ctime(current_time)
print(str_time)
print(type(str_time))# 输出:
# Tue Nov 7 17:02:30 2023
# <class 'str'>
2.时间戳转为时间元组
import time
current_time=time.time()
print(current_time)
print(type(current_time))# 输出:
# 1699347750.380224
# <class 'float'>tuple_time=time.local_time(current_time)
print(tuple_time)
print(type(tuple_time))# 输出:
# time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=17, tm_min=4, tm_sec=25, tm_wday=1, tm_yday=311, tm_isdst=0)
# <class 'time.struct_time'>
3.字符串转为时间元组
import timestr_time=time.asctime()
print(str_time)
print(type(str_time))# 输出:
# Tue Nov 7 17:14:29 2023
# <class 'str'>struct_time=time.strptime(str_time)
print(struct_time)
print(type(struct_time))# 输出:
# time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=17, tm_min=14, tm_sec=29, tm_wday=1, tm_yday=311, tm_isdst=-1)
# <class 'time.struct_time'>
4.字符串转换为时间戳
import timestr_time=time.asctime()
print(str_time)
print(type(str_time))# 输出:
# Tue Nov 7 17:14:29 2023
# <class 'str'>struct_time=time.strptime(str_time) #先转换为struct_time或者元组
second_time=time.mktime(struct_time)
print(second_time)
print(type(second_time))# 输出:
# 1699348690.0
# <class 'float'>
5.时间元组转为字符串
import time
struct_time=time.localtime()
print(struct_time)
print(type(struct_time))# 输出:
# time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=17, tm_min=22, tm_sec=44, tm_wday=1, tm_yday=311, tm_isdst=0)
# <class 'time.struct_time'>print(time.strftime('%Y/%m/%d',struct_time))
print(time.strftime('%T',struct_time))
print(time.strftime('%F',struct_time))print(type(time.strftime('%Y/%m/%d',struct_time)))# 输出:
# 2023/11/07
# 17:22:44
# 2023-11-07
# <class 'str'>
6.时间元组转换为时间戳(从新纪元后的秒数)
import time
tuple_time=time.localtime()
print(tuple_time)
print(type(tuple_time))# 输出:
# time.struct_time(tm_year=2023, tm_mon=11, tm_mday=7, tm_hour=16, tm_min=57, tm_sec=44, tm_wday=1, tm_yday=311, tm_isdst=0)
# <class 'time.struct_time'>second_time=time.mktime(tuple_time)
print(second_time)
print(type(second_time))# 输出:
# 1699347464.0
# <class 'float'>
附录:python中时间日期格式化符号
符号 | 说明 |
---|---|
%y | 两位数的年份表示(00-99) |
%Y | 四位数的年份表示(0000-9999) |
%m | 月份(01-12) |
%d | 月内中的一天(0-31) |
%H | 24小时制小时数(01-23) |
%I | 12小时制小时数(01-12) |
%M | 分钟数(00-59) |
%S | 秒(00-59) |
%a | 本地简化星期名称(示例:Sat) |
%A | 本地完整星期名称(示例:Saturday) |
%b | 本地简化的月份名称(示例:Aug) |
%B | 本地完整的月份名称(示例:August) |
%c | 本地相应的日期表示 和时间表示(示例:Sat Aug 17 15:55:44 2019) |
%j | 年内的一天(001-366) |
%p | 本地A.M或P.M的等价符 |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%w | 星期(0-6),星期天为星期的开始 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%x | 本地相应的日期表示(示例:11/07/2023) |
%X | 本地相应的时间表示(示例:15:54:52) |
%Z | 当前时区的名称 |
%% | %号本身 |