python之时间模块

时间模块

在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:

(1) 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

(2) 格式化的时间字符串(Format String): ‘1999-12-06’

(3) 元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

三种模块之间可以相互转换

img

1. time模块

格式化时间符号
%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 当前时区的名称
%% %号本身

在这里插入图片描述

时间元组符号
索引(Index)属性(Attribute)值(Values)
0tm_year(年)比如2011
1tm_mon(月)1 - 12
2tm_mday(日)1 - 31
3tm_hour(时)0 - 23
4tm_min(分)0 - 59
5tm_sec(秒)0 - 60
6tm_wday(weekday)0 - 6(0表示周一)
7tm_yday(一年中的第几天)1 - 366
8tm_isdst(是否是夏令时)默认为0

在这里插入图片描述

重点
import time
time.sleep()  # 原地阻塞指定的秒数
time.sleep()  # 获取时间戳时间
# 格式化时间
'常用'
print(time.strftime('%Y-%m-%d'))  # 2021-11-25
print(time.strftime('%Y-%m-%d  %H:%M:%S'))  # 2021-11-25  18:34:33
print(time.strftime('%Y-%m-%d  %X'))  # 2021-11-25  18:34:33
了解
1. 时间戳->结构化时间
print(time.gmtime())  # UTC 时间  相差8小时
print(time.localtime())  # 本地时间
# time.struct_time(tm_year=2021, tm_mon=11, tm_mday=25, tm_hour=10, tm_min=57, tm_sec=36, tm_wday=3, tm_yday=329, tm_isdst=0)
# time.struct_time(tm_year=2021, tm_mon=11, tm_mday=25, tm_hour=18, tm_min=57, tm_sec=36, tm_wday=3, tm_yday=329, tm_isdst=0)
# 时间元组:localtime将一个时间戳转换为当前时区的struct_time
print(time.localtime())
# time.struct_time(tm_year=2021, tm_mon=11, tm_mday=25, tm_hour=18, tm_min=41, tm_sec=47, tm_wday=3, tm_yday=329, tm_isdst=0)
res = time.localtime()
	 也可以单独拿出值
print(res.tm_year)  # 2021
print(res.tm_mon)  # 11
2. 结构化时间->时间戳
print(time.mktime((2005, 3, 18, 1, 58, 31, 4, 77, 0)))  # 1111082311.0

3. 结构化时间->字符串时间
print(time.strftime("%Y-%m-%d",time.localtime(1500000000)))  # 2017-07-14

4. 字符串时间->结构化时间
print(time.strptime("2017-03-16", "%Y-%m-%d"))
# time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
print(time.strptime("07/24/2017", "%m/%d/%Y"))
# time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

'小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的'

img

看看就行了
# 结构化时间-> %a %b %d %H:%M:%S %Y串、
# time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
print(time.asctime(time.localtime(1500000000)))
# Fri Jul 14 10:40:00 2017
print(time.asctime())
# Thu Nov 25 19:08:51 2021

# 时间戳 --> %a %b %d %H:%M:%S %Y串
# time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化串
print(time.ctime())
# Thu Nov 25 19:09:40 2021
print(time.ctime(1500000000))
# Fri Jul 14 10:40:00 2017'

在这里插入图片描述

2. datetime模块

print(datetime.date.today())  # 2021-11-25
print(datetime.datetime.today())  # 2021-11-25 19:14:35.905034

"""date年月日  datetime年月日时分秒  time时分秒(MySQL django可以)"""
res = datetime.datetime.today()
'也可以一个个取'
print(res.year)  # 2021
print(res.month)  # 11
print(res.weekday())  # 3 获取星期(weekday星期是0-6) 0表示周一
print(res.isoweekday())  # 4 获取星期(weekday星期是1-7) 1表示周一

"""时间差(timedelta)"""
ctime = datetime.datetime.today()
time_del = datetime.timedelta(days = 3)
print(ctime)  # 2021-11-25 19:21:50.007239
print(ctime - time_del)  # 2021-11-22 19:21:50.007239
print(ctime + time_del)  # 2021-11-28 19:21:50.007239
"""
日期对象 = 日期对象 +/- timedelta对象
timedelta对象 = 日期对象 +/- 日期对象
"""
# UTC时间与我们的东八区时间差 八个小时
print(datetime.datetime.now())  # 2021-11-25 19:23:15.945830
print(datetime.datetime.utcnow())  # 2021-11-25 11:23:15.945830

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go&Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值