python library time datetime calendar

python library time datetime calendar

  1. 时间模块简介

    1
    Python处理时间和日期方面的模块,主要有: time,datetime和calendar 三个模块
  2. time模块
    time module

    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
    >>> import time       #导入模块

    >>> t = time.time() #获取当前时间戳
    >>> t
    1502700231.32274

    >>> t_tuple = time.localtime(t) #由时间戳转换为时间元组
    >>> t_tuple
    time.struct_time(tm_year=2017, tm_mon=8, tm_mday=14, tm_hour=16, tm_min=43, tm_sec=51, tm_wday=0, tm_yday=226, tm_isdst=0)

    >>> t_people = time.ctime(t) #由时间戳转换为"友好显示"
    >>> t_people
    'Mon Aug 14 16:43:51 2017'

    >>> t = time.mktime(t_tuple) #由时间元组转换为时间戳
    >>> t
    1502700231.0

    >>> t_people = time.asctime(t_tuple) #由时间元组转换为"友好显示"
    >>> t_people
    'Mon Aug 14 16:43:51 2017'

    >>> t_1 = time.strftime('%Y-%m-%d %X',t_tuple) #由时间元组转换为自定义显示格式
    >>> t_1
    '2017-08-14 16:43:51'

    >>> t_2 = time.strptime(t_1,'%Y-%m-%d %X') #由自定义时间转换为时间元组显示
    >>> t_2
    time.struct_time(tm_year=2017, tm_mon=8, tm_mday=14, tm_hour=16, tm_min=43, tm_sec=51, tm_wday=0, tm_yday=226, tm_isdst=-1)
  3. datetime模块
    datetime module

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    >>> import datetime     #导入datetime模块

    >>> dt = datetime.datetime.now() #获取当前时间
    >>> dt
    datetime.datetime(2017, 8, 14, 16, 59, 56, 358531)

    >>> dt.year #获取当前年份
    2017
    >>> dt.month #获取当前月份
    8
    >>> dt.day #获取当前月第几天
    14

    >>> dt.date() #获取年月日
    datetime.date(2017, 8, 14)
    >>> dt.time() #获取时间
    datetime.time(16, 59, 56, 358531)

    >>> dt.weekday() #获取今天是周几,默认周一为0
    0
    >>> dt.isoweekday() #获取今天是周几,默认周一为1
    1

    >>> dt.isocalendar() #获取日历,年,一年中第几周,周几
    (2017, 33, 1)

    >>> dt.toordinal() #计算到公元元年过了多少天
    736555
    >>> dt.fromordinal(54) #以元年为起点,获取指定某天的时间
    datetime.datetime(1, 2, 23, 0, 0)

    >>> dt.today() #获取当前时间
    datetime.datetime(2017, 8, 14, 17, 6, 29, 46188)
    >>> dt.utcnow() #获取utc当前时间
    datetime.datetime(2017, 8, 14, 9, 6, 49, 240196)

    >>> dt.isoformat() #获取时间字符串
    '2017-08-14T16:59:56.358531'

    >>> dt.ctime() #将时间转换为友好显示
    'Mon Aug 14 17:16:49 2017'

    >>> dt.strftime('%Y-%m-%d %X') #转换为指定格式
    '2017-08-14 17:16:49'

    >>> dt.strptime('2017-08-14 17:16:49','%Y-%m-%d %X') #指定格式转换为datetime格式
    datetime.datetime(2017, 8, 14, 17, 16, 49)
  4. calendar模块

    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> import calendar   #导入模块

    >>> calendar.isleap(2017) #判断是否是闰年
    False
    >>> calendar.isleap(2020)
    True

    >>> calendar.leapdays(1990,2020) #返回闰年在1990-2020之间出现的次数
    7