zoukankan      html  css  js  c++  java
  • Python中的时间日期模块(time、datetime)

    目录

    Datetime

    获取当前时间

    获取当前日期

    获取当前时间的tuple元组

    格式化日期和时间

    时间移动

    获取两个时间的时间差

    时间格式转换

    Time

    获取距元年(1970.1.1)的秒数

    当时时间

    格式化时间和日期

    休眠

    Calendar

    打印某个月的月历


    Python提供了datetime、time和 calendar 模块用来处理日期和时间,时间间隔是以秒为单位的浮点数。每个时间戳都是自1970年1月1日来算。

    Datetime

    datetime在python中是用来处理时间的一个模块

    datetime模块下又包含了几个类

    类名 功能
    date 日期对象,常用的属性有year, month, day
    time 时间对象
    datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
    timedelta 时间间隔,即两个时间点之间的长度
    datetime_CAPI 日期时间对象C语言接口
    tzinfo 时区信息对象

    下面介绍datetime中比较常用的一些函数

    获取当前时间

    from datetime import datetime
    >>> print ( datetime.now() )
    2018-10-08 08:08:13.296957
    >>> print ( datetime.now().time() )
    08:08:13.296957
    >>> print ( type(datetime.now()) )
    <class 'datetime.datetime'>         

    获取当前日期

    from datetime import datetime
    >>> print ( datetime.now().date() )
    2018-10-08
    >>> print ( type(datetime.now().date() ) )
    <class 'datetime.date'>                

    获取当前时间的tuple元组

    from datetime import datetime
    print(datetime.now().timetuple())   
    //time.struct_time(tm_year=2018, tm_mon=11, tm_mday=1, tm_hour=16, tm_min=21, tm_sec=5, tm_wday=3, tm_yday=305, tm_isdst=-1)
    print(datetime.now().timetuple().tm_year)  //2018  年
    print(datetime.now().timetuple().tm_mon)   //11    月
    print(datetime.now().timetuple().tm_mday)  //1     日
    print(datetime.now().timetuple().tm_hour)  //16    时
    print(datetime.now().timetuple().tm_min)   //21    分
    print(datetime.now().timetuple().tm_sec)   //5     秒
    print(datetime.now().timetuple().tm_wday)  //3     0-6 0是周一,6是周日
    print(datetime.now().timetuple().tm_yday)  //305   一年中的第几天
    print(datetime.now().timetuple().tm_isdst) //-1    是否为下令时 1为是 0为不是 -1为未知,默认为-1

    格式化日期和时间

    from datetime import datetime
    print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
    #############
    2018-11-01 19:25:45

    时间移动

    使用datetime.timedelta这个方法来前后移动时间,可以用的参数有weeks,days,hours,minutes,seconds,microseconds。使用 days=1代表后一天,days=-1代表前一天,其他参数也一样

    from datetime import datetime
    from datetime import timedelta
    >>>print( datetime.now() )
    2018-10-08 08:25:49.546137
    >>>print( datetime.now()+ timedelta(days=1))
    2018-10-09 08:25:49.547196

    获取两个时间的时间差

    from datetime import datetime
    >>>nowtime=datetime.now()
    >>>utctime=datetime.utcnow()
    >>>print( nowtime-utctime )
    8:00:00
    >>>print((nowtime-utctime).total_seconds())         ##以秒计算
    28800.0

    时间格式转换

    datetime转str格式

    from datetime import datetime
    >>>print( datetime.now() )
    2018-10-08 08:33:37.369422
    >>>print( datetime.now().strftime("%Y-%m-%d %H:%M:%S") )
    2018-10-08 08:33:37
    >>>print( datetime.now().strftime("%Y-%m-%d") )
    2018-10-08 
    >>>print( datetime.now().strftime("%H-%M:%S") )
    08:33:37

    str格式转datetime

    from datetime import datetime
    >>>print( datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S"))
    2018-10-08 09:00:00
    >>>print( type(datetime.strptime("2018-10-08 09:00:00","%Y-%m-%d %H:%M:%S")) )
    <class 'datetime.datetime'>

    datetime转timestamp

    from datetime import datetime
    import time
    >>>now=datetime.now()
    >>>print(now)
    2018-10-08 08:51:42.215168
    >>>print( time.mktime(now.timetuple()) )
    1538959902.0                  ##现在距离1970-01-01 00:00:00的秒数

    timestamp转datetime 

    from datetime import datetime
    >>>print( datetime.fromtimestamp(1538959902.0))
    2018-10-08 08:51:42

    Time

    获取距元年(1970.1.1)的秒数

    >>import time
    >>print(time.time())
    1541121353.1594238
    >>print(time.ctime(time.time()))
    Fri Nov  2 09:15:53 2018

    当时时间

    import time
    localtime=time.localtime()  #返回结构时间
    asctime=time.asctime(localtime)    #将结构时间转换为asctime
    print(localtime)
    print(asctime)
    ############
    time.struct_time(tm_year=2018, tm_mon=11, tm_mday=1, tm_hour=19, tm_min=13, tm_sec=5, tm_wday=3, tm_yday=305, tm_isdst=0)
    Thu Nov  1 19:13:05 2018

    格式化时间和日期

    import time
    formattime1=time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
    formattime2=time.strftime("%a-%b-%d %H:%M:%S:%Y",time.localtime())
    print(formattime1)
    print(formattime2)
    #############################
    2018-11-01 19:16:30
    Thu-Nov-01 19:16:30:2018

    休眠

    import time
    time.sleep(10)   ##休眠10秒

    Calendar

    Calendar模块有很广泛的方法用来处理年历和月历

    打印某一年和某一个月的月历

    import calendar
    
    print("2018年的年历是:")
    print(calendar.prcal(2018))
    ###################################
    2018年的年历是:
                                      2018
    
          January                   February                   March
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7                1  2  3  4                1  2  3  4
     8  9 10 11 12 13 14       5  6  7  8  9 10 11       5  6  7  8  9 10 11
    15 16 17 18 19 20 21      12 13 14 15 16 17 18      12 13 14 15 16 17 18
    22 23 24 25 26 27 28      19 20 21 22 23 24 25      19 20 21 22 23 24 25
    29 30 31                  26 27 28                  26 27 28 29 30 31
    
           April                      May                       June
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                       1          1  2  3  4  5  6                   1  2  3
     2  3  4  5  6  7  8       7  8  9 10 11 12 13       4  5  6  7  8  9 10
     9 10 11 12 13 14 15      14 15 16 17 18 19 20      11 12 13 14 15 16 17
    16 17 18 19 20 21 22      21 22 23 24 25 26 27      18 19 20 21 22 23 24
    23 24 25 26 27 28 29      28 29 30 31               25 26 27 28 29 30
    30
    
            July                     August                  September
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
                       1             1  2  3  4  5                      1  2
     2  3  4  5  6  7  8       6  7  8  9 10 11 12       3  4  5  6  7  8  9
     9 10 11 12 13 14 15      13 14 15 16 17 18 19      10 11 12 13 14 15 16
    16 17 18 19 20 21 22      20 21 22 23 24 25 26      17 18 19 20 21 22 23
    23 24 25 26 27 28 29      27 28 29 30 31            24 25 26 27 28 29 30
    30 31
    
          October                   November                  December
    Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7                1  2  3  4                      1  2
     8  9 10 11 12 13 14       5  6  7  8  9 10 11       3  4  5  6  7  8  9
    15 16 17 18 19 20 21      12 13 14 15 16 17 18      10 11 12 13 14 15 16
    22 23 24 25 26 27 28      19 20 21 22 23 24 25      17 18 19 20 21 22 23
    29 30 31                  26 27 28 29 30            24 25 26 27 28 29 30
                                                        31
    
    
    cal=calendar.month(2018,10)
    print("2018年10月的月历是:")
    print(cal)
    #########################
    2018年10月的月历是:
        October 2018
    Mo Tu We Th Fr Sa Su
     1  2  3  4  5  6  7
     8  9 10 11 12 13 14
    15 16 17 18 19 20 21
    22 23 24 25 26 27 28
    29 30 31
    
    
    print(calendar.leapdays(2000,2018))  #返回2000~2018内的闰年数
    print(calendar.weekday(2018,11,2))  ##返回2018.11.2是星期几,0-6
  • 相关阅读:
    2020Java面试题整理
    Oracle中使用Merge Into去除数据库重复记录
    Oracle修改sort_area_size,workarea_size_policy
    免费接口
    Java 将日期或秒数转换为日时分秒,如:2天3小时23分32秒
    linux环境下Mysql不区分大小写配置
    Oracle分区测试
    JS倒计时刷新页面
    JS获取table列数据
    Sql Server 2008日志清理
  • 原文地址:https://www.cnblogs.com/csnd/p/11807943.html
Copyright © 2011-2022 走看看