Python-时间模块

目录

一、Time模块

1、时间戳

2、 格式化字符串

3、结构化时间

二、Datatime 模块

1、datetime

2、datatime 做时间加减

三、时间格式转换

1、 时间戳 --localtime/gmtime--> 结构化时间 --strftime--> 格式化的字符时间

(1)时间戳 ----> 结构化时间

(2) 结构化时间 ----> 格式化的字符时间

2、时间戳 <--mktime-- 结构化时间 <--strptime-- 格式化的字符时间

(1)结构化时间 <---- 格式化的字符时间

(2)时间戳 <---- 结构化时间

四、补充


一、Time模块

1、时间戳

注:只有时间戳形式可以加减

print(time.time())  # 适合做时间间隔运算
print(time.time()+24*60*60*7)  # 计算7天后的时间

运行结果:

1717725556.3852727

1718344890.697206

2、 格式化字符串

print(time.strftime("%Y-%m-%d %H:%M:%S %A"))
print(time.strftime("%Y-%m-%d %X %A"))
print(time.strftime("%x %X %A"))

运行结果:

2024-06-07 09:59:16 Friday
2024-06-07 09:59:16 Friday
06/07/24 09:59:16 Friday


附:

python中时间日期格式化符号:
- %y    两位致的年份表示(00-99)
- %Y   四位数的年份表示(000-9999)
- %m   月份(01-12)
- %d   月内中的一天(0-31)
- %H   24小时制小时数(0-23)
- %I   12小时制小时数(01-12)
- %M   分钟数(00=59)
- %秒s   秒(00-59)
- %a    本地简化星期名称
- %A    本地完整星期名称
- %b   本地简化的月份名称
- %B   本地完整的月份名称
- %c   本地相应的日期表示和时间表示
- %j    年内的一天(001-366)
- %p   本地A.M.或P.M.的等价符
- %U   一年中的星期数(00-53)星期天为星期的开始
- %w   星期(0-6),星期天为星期的开始
- %W   一年中的星期数(00-53)星期一为星期的开始
- %x     本地相应的日期表示
- %X   本地相应的时间表示
- %Z   当前时区的名称
- %%   %号本身


3、结构化时间

res = time.localtime()
print(res)
print(res.tm_year)  # 获取年份
print(res.tm_mday)  # 获取日期
print(res.tm_wday)  # 获取星期的第几天

运行结果:

time.struct_time(tm_year=2024, tm_mon=6, tm_mday=7, tm_hour=9, tm_min=59, tm_sec=16, tm_wday=4, tm_yday=159, tm_isdst=0)

注:tm_wday:表示星期天,以0开始;

       tm_yday:表示一年中的第几天;

       tm_isdst:表示夏令时,0,非夏令时;

2024
7
4

二、Datatime 模块

1、datetime

res = datetime.datetime.now()
print(res)
print(res.replace(microsecond=0))  # 微秒

运行结果:

2024-06-07 13:58:50.883023
2024-06-07 13:58:50

2、datatime 做时间加减

res = datetime.datetime.now()
res_late = datetime.datetime.now()+ datetime.timedelta(days=7) # 计算7天后的时间
res_before = datetime.datetime.now()+ datetime.timedelta(days=-7) # 计算7天前的时间
print(res_late)
print(res_before)

注:减时间的操作,一般用于查询数据时;

运行结果:

2024-06-07 14:06:45.354345
2024-06-14 14:06:45.354345
2024-05-31 14:06:45.354345


附:鼠标箭头放在timedelta上,按住Ctrl +鼠标左键:

上述知:可以加减天数,周,秒,毫秒,分,小时。


三、时间格式转换

1、 时间戳 --localtime/gmtime--> 结构化时间 --strftime--> 格式化的字符时间

(1)时间戳 ----> 结构化时间

res = time.time()
print(time.localtime())
print(time.gmtime())  # gmtime()是标准时间
print(time.localtime(res))
print(time.localtime(111))
print(time.gmtime(111))

运行结果:

time.struct_time(tm_year=2024, tm_mon=6, tm_mday=12, tm_hour=10, tm_min=14, tm_sec=1, tm_wday=2, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=2024, tm_mon=6, tm_mday=12, tm_hour=2, tm_min=14, tm_sec=1, tm_wday=2, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=2024, tm_mon=6, tm_mday=12, tm_hour=10, tm_min=14, tm_sec=1, tm_wday=2, tm_yday=164, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=1, tm_sec=51, tm_wday=3, tm_yday=1, tm_isdst=0)
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=1, tm_sec=51, tm_wday=3, tm_yday=1, tm_isdst=0)

(2) 结构化时间 ----> 格式化的字符时间

res = time.localtime(11111)  # 现在的时间
print(time.strftime('%Y-%m-%d %X %A'))  # 未传第二个参数,现在时间
print(time.strftime('%Y-%m-%d %X %A', res))  # 传第二个参数,参数表示的时间y

运行结果:

2024-06-12 10:19:25 Wednesday
1970-01-01 11:05:11 Thursday

2、时间戳 <--mktime-- 结构化时间 <--strptime-- 格式化的字符时间

(1)结构化时间 <---- 格式化的字符时间

t = '1949-8-1 08:31:59'
print(time.strptime(t, '%Y-%m-%d %X'))

运行结果:

time.struct_time(tm_year=1949, tm_mon=8, tm_mday=1, tm_hour=8, tm_min=31, tm_sec=59, tm_wday=0, tm_yday=213, tm_isdst=-1)

(2)时间戳 <---- 结构化时间

t = '1994-8-1 08:31:59'
res = time.strptime(t, '%Y-%m-%d %X')  # 结构化时间
print(time.mktime(res))
print(time.mktime(res)+30*24*60*60)  # 30天后的时间戳

运行结果:

775701119.0

778293119.0

四、补充

time.sleep(1)  # 延时
print(time.asctime())
print(time.ctime(time.time()))  # 可以直接把时间戳转成固定的字符串格式,不可以自定义格式

print(datetime.datetime.now())
print(datetime.datetime.utcnow())  # 世界标准时间

print(datetime.datetime.fromtimestamp(11111))  # 不可自定义时间格式,

运行结果:
Wed Jun 12 10:46:26 2024
Wed Jun 12 10:46:26 2024


2024-06-12 10:46:26.200038
2024-06-12 02:46:26.200038


1970-01-01 11:05:11

  • 29
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值