zoukankan      html  css  js  c++  java
  • python操作时间

    一、问题背景

    在对数据进行操作的时候我们总是会遇到数据类型是date类型的数据,这种数据会让我们在使用和操作的过程中遇到一些问题,比如int类型和date类型不对等,string类型和date类型不对等的情况。而在对数据库的字段操作的时候我们更是会遇到此问题,因此在此记录一下操作方法,可以在以后的使用中直接将代码copy过来

    二、问题描述

    在python中使用datetime这个函数来对时间进行操作,结合数据库一起进行操作,主要内容包括:获取时间为datetime类型,string类型如何转变成datetime类型,对时间进行添加和减少等,在方法中会一一指出

    模型如下:

    三、方法

    在datetime对象使用的过程中,如果需要获取时间就是datetime,如果不需要获取时间就是date,作为一个使用的通式

    3.1 获取当前的日期和时间

    代码

    import datetime
    
    
    print(datetime.datetime.today())  # 可以使用today
    print(datetime.datetime.now())  # 也可以使用now获取

    结果

    3.2 获取当前的日期

    代码

    import datetime
    
    print(datetime.date.today())  # 获取当前的日期

    结果

    3.3 对时间进行增加

    3.3.1 添加天数

    代码

    import datetime
    
    print(f"当前的时间:{datetime.date.today()}")
    print(f"我是day:{datetime.date.today() + datetime.timedelta(days=1)}")  # 增加一天的时间

    结果

    3.3.2 增加周数

    代码

    import datetime
    
    print(f"当前的时间:{datetime.date.today()}")
    print(f"我是week:{datetime.date.today() + datetime.timedelta(weeks=1)}")

    结果 

    3.3.3 其他参数

    通过查阅源码可以看到能够添加的参数,当然在date的对象下面添加的时间和分钟数是无法查看到的,需要使用datetime来进行查看

    3.4 字符转成时间

    使用strptime将指定的字符串转换成对应的时间对象,通过下述的结果可以看到,使用的时候进行对应来进行解析,%在SQL语句和时间中是一个标识符,作为数据的拆分结果

    import datetime
    
    
    str_time_0 = '2019/1/3:19/21'
    str_time_1 = '2019-1-3:19/21'
    str_time_2 = '2019/1/319/21'
    str_time_3 = '2019/1/3:19-21'
    x_0 = datetime.datetime.strptime(str_time_0, '%Y/%m/%d:%H/%M')
    x_1 = datetime.datetime.strptime(str_time_1, '%Y-%m-%d:%H/%M')
    x_2 = datetime.datetime.strptime(str_time_2, '%Y/%m/%d%H/%M')
    x_3 = datetime.datetime.strptime(str_time_3, '%Y/%m/%d:%H-%M')

    结果

    3.5 时间转字符

    从结果中可以看到,strftime是一个输出的格式,只需要指定其输出的格式就可以,有一点值得注意的是不能使用%,否则就会出现无法识别的错误

    import datetime
    
    
    y_0 = datetime.date.today()
    str_time_0 = y_0.strftime("%Y-%m-%d %H:%M")
    str_time_1 = y_0.strftime("%Y&%m&%d %H-%M")
    str_time_2 = y_0.strftime("%Y/%m/%d-%H:%M")
    print(str_time_0) print(str_time_1) print(str_time_2)

    结果

    四、实例

    在数据库开发的过程中使用F查询来增加时间,可以达到快速高效的方法,如果使用原生的数据库对象就要注意timestamp的使用其使用方法和datetime一样,他的对象是time

    五、总结 

    对于时间对象可以直接使用strftime来转成我们所需要的string的格式,对于string对象我们可以使用strptime转换成我们所需要的时间格式。举例了集中常用的时间操作方法和操作对象的手段

  • 相关阅读:
    P1144 最短路计数
    P2966 [USACO09DEC]牛收费路径Cow Toll Paths
    P2419 [USACO08JAN]牛大赛Cow Contest
    P1462 通往奥格瑞玛的道路
    P1346 电车
    P1339 [USACO09OCT]热浪Heat Wave
    P1418 选点问题
    P1330 封锁阳光大学
    P1182 数列分段Section II
    P2661 信息传递
  • 原文地址:https://www.cnblogs.com/future-dream/p/12002694.html
Copyright © 2011-2022 走看看