美文网首页
Datetime模块使用小节

Datetime模块使用小节

作者: Eachann_ab08 | 来源:发表于2021-02-19 15:49 被阅读0次

    datetime.date类

    生成时间类对象

    todaytime1 = datetime.date.today()
    print(todaytime1,type(todaytime1))
    todaytime2 = datetime.date(2021,2,19)
    print(todaytime2,type(todaytime2))
    

    类属性

    print(datetime.date.min)
    print(datetime.date.max)
    print(datetime.date.resolution)
    

    实例属性得到年月日

    print(todaytime1.year, type(todaytime1.year))
    #可以看出得到的是一个int类数
    print(todaytime1.month)
    print(todaytime1.day)
    

    常用的实例方法

    isoformat :返回标准格式时间字符串和strftime返回自定义格式的时间字符串

    print(todaytime1.isoformat(),type(todaytime1.isoformat()))
    #返回标准格式,类似2021-02-01这种,返回的是字符串
    print(todaytime1.strftime("%Y年/%m月/%d日"))
    #注意格式定义中Y要大写,y是小写会省略前两位
    

    replace:替换年月日

    print(todaytime1.replace(2022,10,1))
    print(todaytime1.replace(todaytime1.year,10))
    print(todaytime1.replace(year=2022))
    

    其他一些方法

    #datetime.date对象——>结构化时间对象
    print(todaytime1.timetuple(),type(todaytime1.timetuple()))
    #toordinal方法,从0001-01-01到现在的天数
    print(todaytime1.toordinal())
    #weekday方法,返回周几
    print(todaytime1.weekday(),type(todaytime1.weekday()))#0代表周一
    print(todaytime1.isoweekday(),type(todaytime1.isoweekday()))#1代表周一
    

    datetime.time类

    基本和datetime.date类似

    #创建datetime.time实例
    time = datetime.time(14,15,30)#还可以写到微秒和时区
    print(time, type(time))
    #类方法
    print(datetime.time.min)
    print(datetime.time.max)
    print(datetime.time.resolution)
    #实例属性
    print(time.hour)
    print(time.minute)
    print(time.second)
    print(time.microsecond)
    #方法
    print(time.isoformat())
    print(time.strftime("%H时,%M分,%S秒,%f微秒"))#注意H,M,S为大写
    

    datetime.datetime类

    生成datetime.datetime实例

    print(datetime.datetime(2020,2,19,14,37,30))
    print(datetime.datetime.today())
    print(datetime.datetime.now(tz=None))#tz是设置时区
    #通过字符串生成datetime.datetime对象,这是datetime.datetime独有的方法
    datetime1 = datetime.datetime.strptime("2020-02-19 14:37:30","%Y-%m-%d %H:%M:%S")
    print(datetime1,type(datetime1))
    #根据datetime.date对象和datetime.time对象创建datetime.datetime对象
    date = datetime.date(2020,2,18)
    time = datetime.time(14,47,39)
    datetime1 = datetime.datetime.combine(date,time)
    print(datetime1,type(datetime1))
    

    datetime.datetime类的类属性和实例属性和datetime.date类似,这里不赘述,不过datetime可以和时间戳,结构化对象,以及格式化字符串之间互相转化,具体方法可以参考下图,图片来自B站“程序员在思考”Up主


    image.png

    datetime.timedelta类

    生成时间差

    deltatime =datetime.timedelta(days=5,hours=-8)
    deltatime =datetime.timedelta(hours=75)#会自动把75h转换成3day带3h
    deltatime =datetime.timedelta(weeks=2)
    print(deltatime)
    

    利用datetime.timedelta来计算目标日期

    currenttime = datetime.datetime.today()
    print("当前时间为{}".format(currenttime.strftime("%Y年-%m月-%d日 %H:%M:%S")))
    targettime =currenttime + datetime.timedelta(days=-5,hours=8)
    print("5天8小时前时间为{}".format(targettime.strftime("%Y年-%m月-%d日 %H:%M:%S")))
    

    利用datetime.timedelta来计算时间差

    date1 = datetime.datetime(2020,2,19,14,37,30)
    date2 = datetime.datetime(2020,2,14,14,34,30)
    deltadatetime = date1-date2
    print(deltadatetime,type(deltadatetime))
    print(deltadatetime.seconds)
    

    相关文章

      网友评论

          本文标题:Datetime模块使用小节

          本文链接:https://www.haomeiwen.com/subject/pvlaxltx.html