python中time与datetime的使用

引言:给大家介绍一下python中两个时间模块的常用方法;顺便也自己做一下笔记;

一般时间分为‘时间戳’与‘字符串’两种格式;时间戳是数字类型,如:616651.65165

而‘时间字符串’一般为'年-月-日 时:分:秒'这种格式

首先是time模块(import time)

  1. time.sleep(n)         # 当程序执行到这,沉睡n秒再继续执行

  2. timr.time()      # 返回从1970开始的计算到现在的时间(单位秒)的时间戳
  3. time.localtime(时间戳)   # 把时间戳转化为struct_time对象(时间戳为数字类型)
  4. time.mktime(struct_time)     #可传入一个struct_time对象,转化成时间戳
  5. time.strptime('2017-5-6 22:15:33',"%Y-%m-%d %H:%M:%S") #把时间字符串转成struct_time                           对象;(返回struct_time对象)

到datetime模块(import datetime):

  1. datetime.datetime(年,月,日[,时,分,秒,微秒])   # 返回datetime对象(中括号代表可选)
t = datetime.datetime(2017, 12, 21, 19, 35, 59, 129648)
print(t,type(t))
>>>2017-12-21 19:35:59.129648 <class 'datetime.datetime'>

2.  datetime.datetime.strptime(str_time,"%Y-%m-%d %H:%M:%S")  # 把字符串转成时间对象
datetime.datetime.strptime('2017-5-6 22:15:33',"%Y-%m-%d %H:%M:%S")
>>>2017-05-06 22:15:33  #Y-m-d代表年月日;H:M:S代表时分秒

3. datetime.date(年,月,日)      #返回date对象;精确到日;如:

datetime.date(2017,5,12)
>>>2017-05-12

 来道题练习一下;我们拿到一个‘字符串类型的时间’和对应一个值,要对比一下当前时间,如果当前时间比我们拿到的时间大于180秒(超过180s),那我们时间对应的值就不能用了(相当于验证码180s过期)

def func():
    while True:    # 做个循环一直拿
        str_time = '2022-9-5 22:35:40'  # 把这个当做我们拿到的时间(相当于我们做一个爬虫去拿数据)
                                        # 所以str_time 是一个变量
                                    
        t1 = time.strptime(str_time, "%Y-%m-%d %H:%M:%S")
        t1 = time.mktime(t1)
        if time.time() - t1 <180:
            print('没过期')     # 当拿到没过期的值,就退出循环
            break            
        else:
            print('过期了')    # 这个打印为了看效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值