时间相关模块

时间相关模块

time模块
import time
1.睡眠 - sleep(时间)
time.sleep(2)      #  表示在此电脑停顿2秒
2.获取当前时间戳 : - time()
t1 = time.time()
print(t1)  # 1661476465.622042

时间戳: 通过时间差来表示具体的时间(指定时间到1970年1月1日0时0分0秒(格林威治时间)之间的时间差(单位:秒))

虽然我们经常会用时间 2022年x月x日 来表示 这时候电脑会用字符串形式保存这个数据。

时间戳的优点就体现出来了,保存数字肯定比保存字符串要省许多内存,所有以时间戳保存的优点在于

优点: 1.节省内存。 2.方便加密

3.获取本地时间 : localtime() — 返回值是结构体时间

默认值是当前时间,如果里面有时间戳,会将时间戳转化为结构体时间。

有一个比较另类的是python中,他会根据本地时间来计算时间差。

t2 = time.localtime()
print(
    t2)  # time.struct_time(tm_year=2022, tm_mon=8, tm_mday=26, tm_hour=9, tm_min=27, tm_sec=56, tm_wday=4(星期值,本来今天星期五,但是他从0开始的星期一), tm_yday=238(今年的第238天), tm_isdst=0)
print(t2.tm_mday)

print(time.localtime(
    0))  # time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
# 为什么是8小时,因为python会把时间差自动转换成当地时间。
4.将结构体时间转化成时间戳 mktime(结构体时间)
print(time.mktime(t2))      
5.时间字符串和结构体时间之间的相互转换

1)结构体时间转换成字符串 - strftime(时间格式,结构体时间)

%Y:年份占位符

%m : 月数占位符

%d : 日数的占位符

%H: 以24小时制的,小时占位符

%M: 分钟数占位符

%S:秒数占位符

%Z:地区时间差(我打印出来:中国标准时间)

%a:简写星期数占位符(Sat)

%A:详细星期数占位符(Saturday)

%b:月份占位符

%B:详细月份占位符

%I: 以12小时制的,小时占位符

%p:AM或PM 占位符

result = time.strftime('%Y年%m月%d日', t2)
print(result)

2)字符串时间转换成结构体时间 - strptime(字符串时间,时间格式)

result1 = time.strptime('2021月3日4', '%Y月%m日%d')
print(result1)
datetime模块
from datetime import datetime,timedelta
1.datetime类

1)获取当前时间

t1 = datetime.today()  # 和datetime.now()一样
print(t1, type(t1))        #2022-08-27 09:26:59.907219 <class 'datetime.datetime'>

2)根据时间值创建时间对象

t3 = datetime(2020, 12, 5)
print(t3)
t4 = datetime(2020, 12, 5, 12, 50, 30)
print(t4)
# 3)根据实际字符串创建时间对象
t5 = datetime.strptime('2021/3/5', '%Y/%m/%d')
print(t5)

# 4)单独获取具体的时间信息
print(t5.year)
print(t5.day)
print(t5.weekday())  # 星期值的取值范围:0-6,0表示星期一

# 5)将时间对象转换成字符串时间:datetime.strftime()
# xxxx年xx月xx日
result = t4.strftime('%Y年%m月%d日')
print(result)

# 6)求时间差:时间对象1   -  时间对象2
t1 = datetime(2022, 5, 3, 9, 10)
t2 = datetime(2022, 10, 1, 10, 5)
result = t2 - t1
print(result, type(result))  # 151 days, 0:55:00 <class 'datetime.timedelta'>
print(result.days)
print(result.seconds)

# 7)时间对象转换成结构体
result = t1.timetuple()
print(result)

# 8)时间对象转时间戳
result = t1.timestamp()
print(result)

# 2.timedelta    -  时间间隔类
t1 = datetime(2020, 10, 1, 10, 8, 30)
print(t1)

# 10天以后对应的事件
result = t1 + timedelta(days=10)
print(result)

# 30天以前对应的时间
result = t1 - timedelta(days=30)

# 5天6小时之前
result = t1 - timedelta(days=5, hours=6)
print(result)

# 3周以后
result = t1 + timedelta(weeks=3)
print(result)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值