zoukankan      html  css  js  c++  java
  • pyhton:time模块和datetime模块

    一、time模块

    1、相关定义:

    time模块时间的表达有3种,时间戳,时间元祖,格式化时间

    #时间戳:
    print(time.time())#获取当前时间戳。时间戳的计算是1970纪元后经过的浮点秒数
    time.sleep(3)#停顿3s
    
    #时间元祖:time.gmtime()和time.localtime()
    today = time.strftime('%Y-%m-%d %H-%M-%S')# strftime()可以把时间元祖转换成格式化时间。如果不给时间元祖参数,默认当前时间元祖转换为格式化时间,也就是默认显示当前格式化时间
    today = time.strftime('%Y-%m-%d',time.gmtime())
    today = time.strftime('%Y-%m-%d',time.localtime())
    #注意:time.gmtime()获取到的是标准时区的时间,time.localtime()获取到的是当地时区时间。我们属于东八区,比标准时区大8个小时
    
    #格式化时间
    
    格式    含义
    %a    本地(locale)简化星期名称
    %A    本地完整星期名称
    %b    本地简化月份名称
    %B    本地完整月份名称
    %c    本地相应的日期和时间表示
    %d    一个月中的第几天(01 - 31%H    一天中的第几个小时(24小时制,00 - 23%I    第几个小时(12小时制,01 - 12%j    一年中的第几天(001 - 366%m    月份(01 - 12%M    分钟数(00 - 59%p    本地am或者pm的相应符
    %S    秒(01 - 61%U    一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。
    %w    一个星期中的第几天(0 - 6,0是星期天)
    %W    和%U基本相同,不同的是%W以星期一为一个星期的开始。
    %x    本地相应日期
    %X    本地相应时间
    %y    去掉世纪的年份(00 - 99%Y    完整的年份
    %Z    时区的名字(如果不存在为空字符)
    %%    ‘%’字符

    2、时间戳和时间格式化的转换

    时间戳和时间格式化不能直接转换。必须经由时间元祖。

    时间戳--->时间元祖---.>时间格式化                        时间格式化--->时间元祖--->时间戳

    #假设有这样一个时间戳1524898629,要转换为时间格式化,则需要以下操作
    t=time.localtime(1524898629)#先转换为当地时间元祖
    t1=time.striftime('%Y-%m-%d %H:%M:%S',t)#将时间元祖t转换为格式化时间,如果不传t,默认取得就是当前格式化时间
    
    #格式化好的时间,转换为时间戳2018-04-21
    tp=time.strptime('2018-4-28','%Y-%m-%d')#strptime可以将格式化时间转换为时间元祖。注意strptime的参数中,前面的str必须和后面的格式化一致
    t=time.mktime(tp)#将时间元祖转换为时间戳。mktime()函数就是把时间元祖转换为时间戳

    二、datetime模块

    datatime模块重新封装了time模块,提供更多接口

    date:获取年月日

    datetime:精确到秒

    print(datetime.datetime.today()) #获取当前时间,精确到秒,2018-04-28 15:35:38.392519
    print(datetime.date.today()) #精确到天,2018-04-28

    如果只想获取年或月或日,可以这样操作

    a=datetime.datetime.today()或者:a=datetime.date.today()
    print(a.year)
    print(a.month)
    print(a.day)

    取某一段时间之前或之后,用timedelta(),返回的是个时间差(比如5天后,返回的就是5days)

    res = datetime.datetime.today()+datetime.timedelta(days=1)#1以今天为准,返回一天后的时间。如果days的值为负,则表示1天前
    res = datetime.datetime.today()+datetime.timedelta(minutes=1)#一分钟后
    res = datetime.datetime.today()+datetime.timedelta(seconds=1)#一秒后
    res = datetime.datetime.today()+datetime.timedelta(weeks=1)#一周后
    res=datetime.datetime.today()+datetime.timedelta(days=1,minutes=5,seconds=5,weeks=5)#5周+1天+5min+5s 时间后,即36 days, 0:05:05时间之后
    #res是个datetime.datetime类型

    字符串和datetime类型转换

    a=datetime.date.today().strftime('%Y-%m-%d')#将一个日期datetime.date转换成字符串
    print(a)
    a=datetime.date.today().strftime('%Y-%m-%d')#将一个日期datetime.datetime转换成字符串
    print(a)
    
    a=datetime.datetime.strptime(str,'%Y-%m-%d')#将字符串转换成日期
    print(a)

    时间格式化和time模块一样,有同样的符号

    %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    当前时区的名称
    %%    %号本身

    比如:

    print(datetime.date.today().strftime('%w')# 打印出今天是这周的第几天

    print(datetime.date.today().strftime('%W')# 打印出今天是今年的第几周

    print(datetime.date.today().strftime('%d')# 打印出今天是这月的第几天

  • 相关阅读:
    mysql BETWEEN操作符 语法
    mysql IN操作符 语法
    mysql LIKE通配符 语法
    mysql TOP语句 语法
    mysql DELETE语句 语法
    mysql Update语句 语法
    mysql INSERT语句 语法
    mysql ORDER BY语句 语法
    mysql OR运算符 语法
    mysql AND运算符 语法
  • 原文地址:https://www.cnblogs.com/bendouyao/p/8968387.html
Copyright © 2011-2022 走看看