python datetime时间模块

datetime模块中的常用类

  • 常用类:

    datetime.date     # 年月日
    datetime.datetime # 年月日 时分秒 
    datetime.timedelta # 时间差对象(实数对象)
    
    • 1
    • 2
    • 3
    • 4

    每个类都有一些方法和属性可以查看具体的值,如datetime可以查看:天数(day),小时数(hour),星期几(weekday())等;timedelta可以查看:天数(days),秒数(seconds)等

1. 时间做加减

  • datetime 对象之间的加减(返回值是datetime对象): 
    例一:

    import datetime
    d1 = datetime.datetime(2005, 2, 16)
    d2 = datetime.datetime(2004, 12, 31)
    (d1 – d2).days
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例二:

    import datetime
    starttime = datetime.datetime.now()
    endtime = datetime.datetime.now()
    print (endtime – starttime).seconds
    
    • 1
    • 2
    • 3
    • 4
    • 5

    例三:

    # timedelta对象还可以做乘除操作
    timespan = timedelta(days=1)
    timespan * 2 #还可以乘哦。代表二倍
    timespan / 13
    
    • 1
    • 2
    • 3
    • 4
    • 5
  • datetime 和 实数(timedelta对象之间的加减, 返回值是datetime对象):

    # 初始化参数也可以用milliseconds, microseconds, seconds, minutes, hours, days(默认), weeks
    datetime.timedelta(minutes=x)   
    # 例子
    d1 = datetime.datetime.now()
    d3 = d1 + datetime.timedelta(hours=10)  # 参数可以是负值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

2. 时间格式化(string和时间对象互转)

  • 最直接的当然是用str()强制转换, 不过下面的方法可以格式化想要的格式

    datetime.datetime.strftime  # strftime将一个datetime结构格式化为一个字符串
    datetime.datetime.strptime  # strptime则是将一个字符串格式化为一个datetime结构。
    例:
    datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    datetime.datetime.strptime(strdatetime, "%Y-%m-%d %H:%M:%S")   # strdatetime为指定格式的时间字符串
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

3. 时间做比较(mysql 的datetime)

  • datetime.datetime 对象之间, datetime.datetime和datetime.date对象之间可以相互比较大小, 日期越新越大
  • python 的 datetime.datetime 和 datetime.date对象可以直接和mysql datetime属性的字段值比较
  • 补充: mysql dateitme字段的初始化默认值设置问题 
    解决: 
    方法一: 
    由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now() 的形式设置默认值是不可能的。代替的方案是使用TIMESTAMP类型代替DATETIME类型。 
    方法二: 
    在MySQL5.0以上版本中也可以使用trigger来实现此功能。

    create table test_time (   
     idint(11),   
     create_time datetime   
    );   
    delimiter |   
    create trigger default_datetime beforeinsert on test_time   
      foreach row   
        if new.create_time is null then   
          set new.create_time = now();   
        end if;|   
    delimiter ;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    方法三: 
    这种方法是最简便, 在代码中,首先获取当前时间,然后转成字符串加到创建表格的sql 语句当中就好(替换掉下面的’0000-00-00’).

    create table test(name varchar(10),registerTime datetime default '0000-00-00');
    
    • 1
    • 2

4.python中时间日期格式化符号:


  • %y 两位数的年份表示(00-99) 
    %Y 四位数的年份表示(000-9999) 
    %m 月份(01-12) 
    %d 月内中的一天(0-31) 
    %H 24小时制小时数(0-23) 
    %I 12小时制小时数(01-12) 
    %M 分钟数(00=59) 
    %S 秒(00-59) 
    %a 本地简化星期名称 
    %A 本地完整星期名称 
    %b 本地简化的月份名称 
    %B 本地完整的月份名称 
    %c 本地相应的日期表示和时间表示 
    %j 年内的一天(001-366) 
    %p 本地A.M.或P.M.的等价符 
    %U 一年中的星期数(00-53)星期天为星期的开始 
    %w 星期(0-6),星期天为星期的开始 
    %W 一年中的星期数(00-53)星期一为星期的开始 
    %x 本地相应的日期表示 
    %X 本地相应的时间表示 
    %Z 当前时区的名称 
    %% %号本身
转载:https://blog.csdn.net/tw18761720160/article/details/52783375

猜你喜欢

转载自blog.csdn.net/menghun_99/article/details/80792696