【Python标准库】time,datetime,dateutil

1. 三个模块主要是用来做什么的?

  • time模块
  • datetime模块 主要是对年月日时分秒,时间差的处理,下面有4个常用的类:
    • time类             表示时间(时分秒)
    • datetime类     表示日期时间
    • date类             表示日期(年月日)
    • timedelta类     表示日期时间间隔
  • dateutil模块

2. 三个模块各自的方法,属性

  • time类
    • time()   时间戳
      • 获取从1970-1-1到当前时间的时间戳,10位
    • strftime(格式[,obj])  格式化字符串
      • import time
        
        print(time.strftime("%Y-%m-%d"))
        
    • localtime([obj])  结构化时间,可以单独提取年,月,日等等
      • import time
        
        res = time.localtime()
        
        print(res.tm_year)

        三者之间转换

        • 时间戳  ->(localtime()) -> 结构化时间 ->(strftime())-> 格式化时间

        • 时间戳  <-mktime()<- 结构化时间  <-(striptime())<- 格式化时间

    • sleep() 睡眠时间,单位:s
      • import time
        
        for i in range(4):
        
            print(str(int(time.time()))[-2:])
        
            time.sleep(1)
        
        假设当前时间戳后2位是00,则输出分别是: 00,01,02,03
  • datetime模块下的类
    • time类
      • 属性hour,minute,second
        • from datetime import time
          
          t = time(16,25,12) # 初始化
          
          print(t.hour) # 16
          
          print(t.minute) # 25
          
          print(t.second) # 12
    • date类
      • 方法
        • repalce(year,month,day) 替换年月日
          • from datetime import date
            
            d = date(2023,12,16)
            
            print(d.replace(year=2023,month=11))  # 2023-11-16
        • strftime(format) date对象->字符串
          • from datetime import date
            
            date1 = date.today()
            
            format1 = date.strftime(date1, "%Y%m%d")
            
            print(format1)  # 20240131
        • today()当日
        • isoweekday() 返回星期几
          • from datetime import date
            
            d = date(2023,12,16)
            
            print(d.isoweekday())  # 6
            

      • 属性year,month,day
        • from datetime import date
          
          d = date(2023,12,16)
          
          print(d.year) # 2023
          
          print(d.month) # 12
          
          print(d.day)  # 16

    • datetime类
      • 方法
        • 1.格式化字符串,时间戳和结构化对象转换

        • 字符串->datetime对象使用datetime.strptime()
          • from datetime import datetime
            
            date1_string = "2023-04-20"
            
            date1 = datetime.strptime(date1_string,"%Y-%m-%d")
            
            print(date1)  # 2023-04-20 00:00:00
            
            print(type(date1))  # <class 'datetime.datetime'>
        • datetime对象->字符串  使用datetime.strftime(format)即解析字符串为时间
        • now() 获取当前的日期时间
        • timestamp()获取时间戳
          • ​​​​​​​
            from datetime import datetime
            
            d = datetime(2024, 1, 31, 12, 0, 0)
            
            print(d.timestamp())  # 1706673600.0
            

      • 属性year,month,day,hour,minute,second
    • timedelta类
      • 1.语法格式
        • timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
      • 2.场景1:计算2个日期之差,
        • 属性days,取天维度差异
          • import datetime
            
            def calculate_days_between(date1, date2):
                # 在此处编写你的代码
                date1 = datetime.datetime.strptime(date1,'%Y-%m-%d')
                date2 = datetime.datetime.strptime(date2,'%Y-%m-%d')
                #类timedelta的属性days
                date3 = (date2 - date1).days  # 10
                print(type(date3))
                return date3
            
            # 获取用户输入
            date1 = "2023-04-10"
            date2 = "2023-04-20"
            
            # 调用函数
            print(calculate_days_between(date1, date2))
      • 3.场景2:指定某个日期的间隔日期后的日期
        • from datetime import datetime, timedelta
          
          d = datetime(2024, 1, 31, 12, 0, 0)
          
          d1 = d + timedelta(days=10)
          
          print(d1) # 2024-02-10 12:00:00
          

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值