Python datetime库核心类与常用方法详解

Ivy
Ivy
发布时间:2026-10-15 | 5人浏览过
原创

本文详细解析Python标准库datetime的五大核心类:date、time、datetime、timedelta及tzinfo。涵盖日期对象的创建、格式化输出、时间戳转换、星期计算,以及利用timedelta进行时间差计算的具体用法与参数说明,帮助开发者高效处理Python中的时间与日期操作。

Python中datetime库的用法

datetime模块整合了date和time模块的功能,该模块定义了两个常量:MAXYEAR(值为9999)和MINYEAR(值为1)。

datetime模块主要包含以下五个类:

  • 1. datetime.date:用于表示日期的类。
  • 2. datetime.datetime:用于表示日期时间的类。
  • 3. datetime.time:用于表示时间的类。
from datetime import date
from datetime import datetime
from datetime import time
from datetime import timedelta
from datetime import tzinfo

from datetime import * #不知道用啥 全部导入就可以
  • 4. datetime.timedelta:用于表示两个时间点之间的时间间隔。
  • 5. datetime.tzinfo:用于处理时区相关信息的类。

datetime.date

date类通过三个参数进行初始化:datetime.date(year, month, day),返回格式为year-month-day。

1. datetime.date.ctime():返回格式如 Sun Apr 16 00:00:00 2017 的字符串。

2. datetime.date.fromtimestamp(timestamp):根据给定的时间戳返回一个date对象;datetime.date.today()具有相同作用。

3. datetime.date.isocalendar():返回格式如 (year, month, day) 的元组,例如 (2017, 15, 6)。

4. datetime.date.isoformat():返回格式如 YYYY-MM-DD 的字符串。

5. datetime.date.isoweekday():返回给定日期的星期数(0-6,其中星期一=0,星期日=6)。注意:在Python 3中,weekday()方法返回的范围是[1-7],表示星期几。

6. datetime.date.replace(year, month, day):替换给定日期的年、月、日,但不改变原日期对象。

7. datetime.date.strftime(format):按照指定的format格式对日期时间进行格式化输出。

8. datetime.date.timetuple():返回日期对应的time.struct_time对象。

time.struct_time(tm_year=2017, tm_mon=4, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=105, tm_isdst=-1)

9. datetime.date.weekday():返回日期的星期数。

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

datetime的time类

time类包含五个参数:

datetime.time(hour, minute, second, microsecond, tzinfo),返回格式如 08:29:30。

  • 1. datetime.time.replace():替换时间对象的部分属性。
  • 2. datetime.time.strftime(format):按照指定format格式返回时间字符串。
  • 3. datetime.time.tzname():返回时区名字。
  • 4. datetime.time.utcoffset():返回时区的时间偏移量。
  • 5. datetime的datetime类

datetime类参数较多,语法为 datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]]),返回包含年月日时分秒的信息。

datetime.datetime.ctime():将datetime.datetime类型转化为str类型,输出示例:Sun Jul 28 15:47:51 2019。

datetime.datetime.now():返回当前系统时间,示例:2019-07-28 15:42:24.765625。

datetime.datetime.now().date():返回当前日期时间的日期部分,示例:2019-07-28。

datetime.datetime.now().time():返回当前日期时间的时间部分,示例:15:42:24.750000。

datetime.datetime.fromtimestamp():从时间戳创建datetime对象。\ndatetime.datetime.replace():替换datetime对象的属性。

datetime.datetime.strftime():由日期格式转化为字符串格式。

datetime.datetime.now().strftime('%b-%d-%Y %H:%M:%S')\n 输出示例:'Apr-16-2017 21:01:35'。

datetime.datetime.strptime():由字符串格式转化为日期格式。

datetime.datetime.strptime('Apr-16-2017 21:01:35', '%b-%d-%Y %H:%M:%S')\n 输出示例:2017-04-16 21:01:35。

datetime的timedelta类

datetime.timedelta

datetime.timedelta用于计算两个datetime.datetime或datetime.date类型之间的时间差。

def new(cls, days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0):

从构造函数可以看出,参数可选:days、seconds、microseconds、milliseconds、minutes、hours、weeks,且默认值均为0。

例如,若要计算300天前的日期,可以按以下方式实现:

>>> now = datetime.datetime.now().date()
>>> now
datetime.date(2018, 11, 9)
>>> delta = datetime.timedelta(days = 300)
>>> now - delta
datetime.date(2018, 1, 13)

datetime.timedelta()支持多个参数,例如计算300天12小时前的时间。

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 11, 9, 15, 30, 36, 156323)
>>> delta = datetime.timedelta(days = 300,hours = 12)
>>> now - delta
datetime.datetime(2018, 1, 13, 3, 30, 36, 156323)

计算总天数和秒数。

>>> datetime.timedelta(days=1,hours = 2).days
1
>>> datetime.timedelta(days=1,hours = 2).total_seconds()
93600.0

到此这篇关于Python datatime库语法使用详解的文章就介绍到这了,更多相关Python datatime库 内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表