Python标准库中的datetime模块详解

Python 标准库中的 datetime 模块提供了和日期和时间相关的类:

功能
datetime.date 以年、月和日表示日历中的日期
datetime.time 以小时、分钟和秒表示一天中的时间
datetime.datetime 以年、月、日、小时、分钟和秒表示日期和时间
datetime.timedelta 表示一个时间段,即两个日期时间之间的差

1. datetime.date 类

date 类以年、月和日表示日历中的日期,示例如下:

>>> from datetime import date
>>> date.today()
datetime.date(2020, 5, 22)
>>> d = date(2020, 5, 1)
  • 从 datetime 模块中引入 date 类
  • date.today() 返回表示今天的日期对象
  • 构造日期 2020 年 5 月 1 日
  • >>> d.year
    2020
    >>> d.month
    5
    >>> d.day
    1
    
  • d.year 返回日期对象的年份
  • d.month 返回日期对象的月份
  • d.day 返回日期对象的日
  • >>> d.weekday()
    4
    >>> d.isoweekday()
    5
    >>> d.isoformat()
    '2020-05-01'
    >>> d.isocalendar()
    (2020, 18, 5)
    
  • d.weekday() 返回一星期中的第几天, 星期一是 0
  • d.isoweekday() 返回一星期中的第几天, 星期一是 1
  • d.isoformat() 以格式 YYYY-MM-DD 返回日期的字符串形式
  • d.isocalendar() 返回一个元组
  • 第 0 项是年份
  • 第 1 项是这一年的第几周
  • 第 2 项是周几
  • >>> d.ctime()
    'Fri May  1 00:00:00 2020'
    >>> d.strftime("%Y-%m-%d")
    '2020-05-01'
    
  • d.ctime() 返回一个表示日期的字符串
  • d.strftime() 返回指定格式的日期字符串
  • %Y 表示年份
  • %m 表示月份
  • %d 表示日
  • >>> e = d.replace(year=2000, month=12)
    >>> e
    datetime.date(2000, 12, 1)
    
  • d.replace() 替换年份、月份、日期生成一个新日期
  • 将年份替换为 2000
  • 将月份替换为 12
  • 2. datetime.time 类

    time 类以小时、分钟和秒表示一天中的时间,示例如下:

    >>> from datetime import time
    >>> t = time(18, 19, 20, 21)
    >>> t.hour
    18
    >>> t.minute
    19
    >>> t.second
    20
    >>> t.microsecond
    21
    
  • 从 datetime 模块中引入 time 类
  • 构造时间 18 时 19 分 20 秒 21 微秒
  • t.hour 返回小时
  • t.minute 返回分钟
  • t.second 返回秒
  • t.microsecond 返回微秒
  • >>> t.isoformat()
    '18:19:20.000021'
    >>> t.strftime("%H:%M:%S:%f")
    '18:19:20:000021'
    
  • t.isoformat() 返回 ISO 8601 格式的时间字符串
  • t.strftime() 返回指定格式的时间格式
  • %H 表示小时
  • %M 表示分钟
  • %S 表示秒
  • %f 表示微秒
  • >>> u = t.replace(hour=8, minute=8, second = 8)
    >>> u
    datetime.time(8, 8, 8, 21)  
    
  • t.replace() 替换小时、分钟、秒生成一个新时间
  • 将小时替换为 8
  • 将分钟替换为 8
  • 将秒替换为 8
  • 3. datetime.datetime 类

    datetime 类年、月、日、小时、分钟和秒表示日期和时间,包含 date 对象和 time 对象的所有信息,示例如下:

    >>> from datetime import datetime,date,time
    >>> datetime.today()
    datetime.datetime(2020, 5, 22, 12, 27, 34, 896212)
    
  • 从 datetime 模块中引入类 datetime、类 date、类 time
  • datetime.today() 返回表示今天的日期对象,包括年、月、日、小时、分钟、秒和微秒
  • >>> d = date(2020,12,12)
    >>> t = time(8,8,8,8)
    >>> dt = datetime.combine(d, t)
    >>> dt
    datetime.datetime(2020, 12, 12, 8, 8, 8, 8)
    
  • 构造日期对象 d
  • 构造时间对象 t
  • datetime.combine(d, t) 将日期对象 d 和时间对象 t 组合形成一个日期时间对象 dt
  • >>> dt.isoformat()
    '2020-12-12T08:08:08.000008'
    >>> dt.strftime("%Y-%m-%d %H:%M:%S:%f")
    '2020-12-12 08:08:08:000008'
    
  • t.isoformat() 返回 ISO 8601 格式的时间字符串
  • t.strftime() 返回指定格式的时间格式
  • %Y 表示年份
  • %m 表示月份
  • %d 表示日
  • %H 表示小时
  • %M 表示分钟
  • %S 表示秒
  • %f 表示微秒
  • >>> u = dt.replace(year=2000, hour=20)
    >>> u
    datetime.datetime(2000, 12, 12, 20, 8, 8, 8)
    >>> u.year
    2000
    >>> u.hour
    20
    
  • dt.replace() 替换年、月、日、小时、分钟、秒生成一个新时间
  • 将年份替换为 2000
  • 将小时替换为 20
  • 4. datetime.timedelta 类

    timedelta 对象表示一个时间段,即两个日期 (date) 或日期时间 (datetime) 之间的差。timedelta 接受命名参数:weeks、days、hours、minutes、seconds、milliseconds、microseconds,示例如下:

    >>> from datetime import date,timedelta
    >>> d = date(2020,12,12)
    >>> delta = timedelta(days=3)
    >>> d - delta
    datetime.date(2020, 12, 9)
    
  • 从 datetime 模块中导入相关的类
  • 创建日期对象 2020 年 12 月 12 日
  • 创建长度为 3 天的时间段
  • 日期 d 前三天的日期是 2020 年 12 月 9 日
  • >>> dt = datetime(2020, 12, 12, 8, 8, 8, 8)
    >>> delta = timedelta(days = 3, hours = 3)
    >>> dt - delta
    datetime.datetime(2020, 12, 9, 5, 8, 8, 8)
    
  • 从 datetime 模块中导入相关的类
  • 创建日期对象 2020 年 12 月 12 日 8 时 8 分 8 秒 8 微秒
  • 创建长度为 3 天 3 小时的时间段
  • 日期 d 前 3 天 3 小时的日期是 2020 年 12 月 9 日 5 时 8 分 8 秒 8 微秒。
  • 作者:Json19970108018

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python标准库中的datetime模块详解

    发表回复