Python datetime库函数的示例详解
datetime
是 Python 内置的日期时间处理库,它包含了处理日期、时间、时间间隔等的类和函数。datetime 库可以从系统中获得时间,并以用户选择的格式输出。下面是 datetime
常用的类和函数以及它们的详细解释。
datetime 类
datetime
类是 date
和 time
两个类的结合体,表示一个具体的日期和时间。
class datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
- year: 年份,四位数。例如:2021。
- month: 月份,1~12 之间的整数。
- day: 日,1~31 之间的整数。
- hour: 小时,0~23 之间的整数。
- minute: 分钟,0~59 之间的整数。
- second: 秒,0~59 之间的整数。
- microsecond: 微秒,0~999999 之间的整数。
- tzinfo: 时区信息,如果不指定则表示本地时区。
- fold: 用于处理 DST(夏令时)的标记,0 表示未折叠,1 表示已折叠。
下面是 datetime
类的一些常用方法:
datetime.today()
和datetime.now()
: 返回当前日期和时间。datetime.date()
: 返回日期部分。datetime.time()
: 返回时间部分。datetime.timestamp()
: 将datetime
对象转换为 Unix 时间戳。datetime.strftime()
: 将datetime
对象格式化为字符串。datetime.strptime()
: 将字符串解析为datetime
对象。
date 类
date
类表示一个日期,不包含时间信息。
class datetime.date(year, month, day)
- year: 年份,四位数。例如:2021。
- month: 月份,1~12 之间的整数。
- day: 日,1~31 之间的整数。
下面是 date
类的一些常用方法:
date.today()
: 返回当前日期。date.fromisoformat()
: 将 ISO 格式字符串转换为date
对象。date.toordinal()
: 将date
对象转换为 Gregorian 日历下的序数。date.weekday()
: 返回星期几,0 表示星期一,6 表示星期日。date.strftime()
: 将date
对象格式化为字符串。date.fromtimestamp()
: 将 Unix 时间戳转换为date
对象。
time 类
time
类表示一个时间,不包含日期信息。
class datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
- hour: 小时,0~23 之间的整数。
- minute: 分钟,0~59 之间的整数。
- second: 秒,0~59 之间的整数。
- microsecond: 微秒,0~999999 之间的整数。
- tzinfo: 时区信息,如果不指定则表示本地时区。
- fold: 用于处理 DST(夏令时)的标记,0 表示未折叠,1 表示已折叠。
下面是 time
类的一些常用方法:
time.fromisoformat()
: 将 ISO 格式字符串转换为time
对象。time.strftime()
: 将time
对象格式化为字符串。time.fromtimestamp()
: 将 Unix 时间戳转换为time
对象。
timedelta 类
timedelta
类表示两个日期或时间之间的时间间隔。
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
- days: 天数,可以为负数。
- seconds: 秒数,可以为负数。
- microseconds: 微秒数,可以为负数。
- milliseconds: 毫秒数,可以为负数。
- minutes: 分钟数,可以为负数。
- hours: 小时数,可以为负数。
- weeks: 周数,可以为负数。
下面是 timedelta
类的一些常用方法:
timedelta.total_seconds()
: 返回时间间隔的总秒数。timedelta.days
: 返回天数。timedelta.seconds
: 返回秒数,不包括天数。timedelta.microseconds
: 返回微秒数,不包括天数和秒数。
其他函数
除了上述类之外,datetime
模块还提供了一些其他函数,如下所示:
datetime.datetime.strptime(date_string, format)
: 将字符串解析为datetime
对象。datetime.datetime.combine(date, time)
: 将date
对象和time
对象组合为datetime
对象。datetime.datetime.now(tz=None)
: 返回当前日期和时间,可以指定时区。datetime.datetime.utcnow()
: 返回当前 UTC 时间。datetime.datetime.fromtimestamp(timestamp, tz=None)
: 将 Unix 时间戳转换为datetime
对象,可以指定时区。datetime.datetime.fromordinal(ordinal)
: 将 Gregorian 日历下的序数转换为datetime
对象。datetime.datetime.fromisoformat(date_string)
: 将 ISO 格式字符串转换为datetime
对象。datetime.date.today()
: 返回当前日期。datetime.date.fromtimestamp(timestamp)
: 将 Unix 时间戳转换为date
对象。datetime.date.fromisoformat(date_string)
: 将 ISO 格式字符串转换为date
对象。datetime.time.fromisoformat(time_string)
: 将 ISO 格式字符串转换为time
对象。
以上是 datetime
模块中一些常用的类和函数,可以方便地进行日期时间的处理和转换。
strftime() 方法
datetime.strftime()
作用: 将 datetime
对象格式化为字符串。
strftime() 方法是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。例如下面的例子,用该方法输出特定格式时间。
from datetime import datetime today = datetime.now() print(today.strftime("%Y-%m-%d %H : %M : %S")) # 执行结果 2023-07-03 08 : 49 : 40
下表是 strftime() 方法的格式化控制符:
格式化字符串 | 日期/时间 | 值范围和实例 |
---|---|---|
%Y | 年份 | 0001~9999 |
%m | 月份 | 01~12 |
%B | 月名 | January~December |
%b | 月名缩写 | Jan~Dec |
%d | 日期 | 01~31 |
%A | 星期 | Monday~Sunday |
%a | 星期缩写 | Mon~Sun |
%H | 小时(24 h 制) | 00~23 |
%M | 分钟 | 00~59 |
%S | 秒 | 00~59 |
%x | 日期 | 月/日/年,例如,01/01/2022 |
%X | 时间 | 时 :分:秒,例如,19 : 09 : 31 |
strftime() 格式化字符串的数字左侧会自动补零,上述格式也可以与 print() 的格式化函数起使用,例如:
from datetime import datetime now = datetime.now() print(now.strftime("%Y- %m- %d")) # 2023- 07- 03 print(now.strftime('%A, %d. %B %Y %H : %M%p')) # Monday, 03. July 2023 10 : 05AM ft = now.strftime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(y='年', m='月', d='日', h='时', f='分', s='秒') print(ft) # 2023年07月03日 10时02分54秒 print("今天是 {0:%Y} 年 {0:%m} 月 {0:%d} 日".format(now)) # 今天是 2023 年 07 月 03 日
到此这篇关于Python datetime库函数的详解的文章就介绍到这了,更多相关Python datetime库函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Python3.6 Schedule模块定时任务(实例讲解)
下面小编就为大家带来一篇Python3.6 Schedule模块定时任务(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-11-11详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
下面小编就为大家分享一篇详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-04-04
最新评论