Python标准库datetime之datetime模块用法分析详解
简介
datetime模块是Python内置的日期和时间处理模块,包含四个类:datetime.date
、datetime.time
、datetime.datetime
和datetime.timedelta
。
datetime.date
类表示日期,包含年月日等信息。
datetime.time
类表示时间,包含小时、分钟、秒等信息。
datetime.datetime
类表示日期和时间,同时包含了年月日、时分秒等信息。
datetime.timedelta
类用来表示两个时间之间的差值。
datetime.date类
创建datetime.date实例
有三种方法创建datetime.date实例:
- 使用
date()
函数(函数返回一个指定日期的datetime.date实例):datetime.date(year, month, day)
- 使用
fromtimestamp()
函数(函数返回一个指定时间戳(1970年1月1日UTC以来的秒数)的datetime.date实例):datetime.date.fromtimestamp(timestamp)
- 使用
today()
函数(函数返回当前日期的datetime.date实例):datetime.date.today()
示例:
import datetime
# 创建 datetime.date 实例
date1 = datetime.date(2021, 5, 23)
print(date1)
# 从时间戳创建 datetime.date 实例
timestamp = 1621843200
date2 = datetime.date.fromtimestamp(timestamp)
print(date2)
# 获取当前日期的 datetime.date 实例
today = datetime.date.today()
print(today)
输出:
2021-05-23
2021-05-24
2021-05-25
datetime.date常见方法
today()
方法:返回当前日期datetime.date实例weekday()
方法:返回日期是星期几(星期一为0,星期天为6)strftime()
方法:将datetime.date对象格式化输出
示例:
import datetime
# 获取当前日期
today = datetime.date.today()
print(today)
# 获取今天是星期几
weekday = today.weekday()
print(weekday)
# 格式化输出日期
date_str = today.strftime('%Y-%m-%d')
print(date_str)
输出:
2021-05-25
1
2021-05-25
datetime.time类
创建datetime.time实例
有两种方法创建datetime.time实例:
- 使用
time()
函数(函数返回指定时间的datetime.time实例):datetime.time(hour=0, minute=0, second=0, microsecond=0)
- 使用
fromtimestamp()
函数(函数返回指定时间戳(1970年1月1日UTC以来的秒数)的datetime.time实例):datetime.time.fromtimestamp(timestamp)
示例:
import datetime
# 创建 datetime.time 实例
time1 = datetime.time(20, 30, 45)
print(time1)
# 从时间戳创建 datetime.time 实例
timestamp = 1621931071
time2 = datetime.time.fromtimestamp(timestamp)
print(time2)
输出:
20:30:45
12:04:31
datetime.time常见方法
hour
、minute
、second
、microsecond
属性:访问时间的小时、分钟、秒和微秒属性strftime()
方法:将datetime.time对象格式化输出
示例:
import datetime
# 创建 datetime.time 实例
time1 = datetime.time(20, 30, 45)
print(time1)
# 获取时间的小时,分钟和秒属性
hour = time1.hour
minute = time1.minute
second = time1.second
print(hour, minute, second)
# 格式化输出时间
time_str = time1.strftime('%H:%M:%S')
print(time_str)
输出:
20:30:45
20 30 45
20:30:45
datetime.datetime类
创建datetime.datetime实例
有两种方法创建datetime.datetime实例:
- 使用
datetime()
函数(函数返回指定日期和时间的datetime.datetime实例):datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
- 使用
fromtimestamp()
函数(函数返回指定时间戳(1970年1月1日UTC以来的秒数)的datetime.datetime实例):datetime.datetime.fromtimestamp(timestamp)
示例:
import datetime
# 创建 datetime.datetime 实例
datetime1 = datetime.datetime(2021, 5, 23, 20, 30, 45)
print(datetime1)
# 从时间戳创建 datetime.datetime 实例
timestamp = 1621913455
datetime2 = datetime.datetime.fromtimestamp(timestamp)
print(datetime2)
输出:
2021-05-23 20:30:45
2021-05-25 02:10:55
datetime.datetime常见方法
today()
方法:返回当前日期和时间的datetime.datetime实例strftime()
方法:将datetime.datetime对象格式化输出replace()
方法:更改datetime.datetime实例的某些属性,返回新的datetime.datetime实例
示例:
import datetime
# 获取当前日期和时间
now = datetime.datetime.now()
print(now)
# 格式化输出日期和时间
datetime_str = now.strftime('%Y-%m-%d %H:%M:%S')
print(datetime_str)
# 更改日期和时间中某些属性
new_datetime = now.replace(hour=12, minute=0, second=0)
print(new_datetime)
输出:
2021-05-25 21:22:33.128104
2021-05-25 21:22:33
2021-05-25 12:00:00.128104
datetime.timedelta类
datetime.timedelta类用于表示时间间隔。
创建datetime.timedelta实例
使用timedelta()
函数创建datetime.timedelta实例,参数包括days、seconds、microseconds、milliseconds、minutes、hours和weeks。
示例:
import datetime
# 创建 datetime.datetime 实例
datetime1 = datetime.datetime(2021, 5, 23, 20, 30, 45)
# 创建 datetime.timedelta 实例表示 10 天
delta1 = datetime.timedelta(days=10)
# 创建 datetime.timedelta 实例表示 1 小时
delta2 = datetime.timedelta(hours=1)
# 计算新日期和时间
new_datetime1 = datetime1 + delta1
new_datetime2 = datetime1 + delta2
# 输出新日期和时间
print(new_datetime1)
print(new_datetime2)
输出:
2021-06-02 20:30:45
2021-05-23 21:30:45
datetime.timedelta常见属性和方法
days
属性:表示时间间隔的天数seconds
属性:表示时间间隔的秒数microseconds
属性:表示时间间隔的微秒数total_seconds()
方法:将时间间隔转换为秒
示例:
import datetime
# 创建 datetime.datetime 实例
datetime1 = datetime.datetime(2021, 5, 23, 20, 30, 45)
# 创建 datetime.timedelta 实例表示 10 天
delta1 = datetime.timedelta(days=10)
# 创建 datetime.timedelta 实例表示 1 小时
delta2 = datetime.timedelta(hours=1)
# 计算新日期和时间
new_datetime1 = datetime1 + delta1
new_datetime2 = datetime1 + delta2
# 计算时间间隔
interval1 = new_datetime1 - datetime1
interval2 = new_datetime2 - datetime1
# 输出时间间隔的天数和秒数
print(interval1.days, interval1.seconds)
print(interval2.days, interval2.seconds)
# 将时间间隔转换为秒
interval_seconds1 = interval1.total_seconds()
interval_seconds2 = interval2.total_seconds()
print(interval_seconds1, interval_seconds2)
输出:
10 0
0 3600
864000.0 3600.0
总结
datetime模块是Python内置的日期和时间处理模块,包含四个类:datetime.date
、datetime.time
、datetime.datetime
和datetime.timedelta
。通过本文的介绍,你应该了解到了这四个类的基本用法和常见方法。