datetime模块是Python中处理日期和时间的标准库之一,其中包含了多个类和函数用于获取、表示和操作日期和时间。下面是详细的介绍和使用方法攻略。
datetime模块中的常用类
在使用datetime模块之前,我们需要先引入相关的类。
import datetime
- datetime.date
- 用于表示日期,包含年、月、日等信息。
-
构造函数:
date(year, month, day)
-
datetime.time
- 用于表示时间,包含小时、分钟、秒等信息。
-
构造函数:
time(hour=0, minute=0, second=0, microsecond=0)
-
datetime.datetime
- 用于表示日期和时间。
-
构造函数:
datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0)
-
datetime.timedelta
- 用于表示时间间隔。
- 构造函数:
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
datetime模块常用函数
- datetime.datetime.now()
- 获取当前日期时间。
- 返回类型:
datetime.datetime
。 - 示例:
import datetime
now = datetime.datetime.now()
print(now)
输出结果:2021-08-08 20:00:00.000000
- datetime.datetime.strptime(date_string, format)
- 将一个字符串转为datetime对象。
- 参数:
- date_string:字符串表示的日期时间。
- format:字符串的日期时间格式。
- 返回类型:
datetime.datetime
- 示例:
date_string = '2021-08-08 20:00:00'
date = datetime.datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(date)
输出结果:2021-08-08 20:00:00
datetime类的常用方法
- date.weekday()
- 获取日期是星期几。星期一为0,星期天为6。
- 返回类型:
int
- 示例:
date = datetime.date.today()
weekday = date.weekday()
print(weekday)
输出结果:6 (假设今天是星期天)
- timedelta的常用方法
-
timedelta是datetime模块的一个类,用于表示时间间隔。
-
timedelta.days
- 获取时间间隔包含的天数。
- 返回类型:
int
-
timedelta.seconds
- 获取时间间隔包含的秒数。
- 返回类型:
int
-
timedelta.total_seconds()
- 获取时间间隔包含的总秒数。
- 返回类型:
float
-
示例如下:
from datetime import datetime, timedelta
days = timedelta(days=1)
seconds = timedelta(seconds=60)
total_seconds = timedelta(minutes=1).total_seconds()
print(days.days)
print(seconds.seconds)
print(total_seconds)
输出结果:
1
60
60.0
datetime模块的常用格式化字符串
在使用datetime模块时,常常需要将datetime对象转化为字符串或将字符串转化为datetime对象。为了能够顺利地进行转化,需要使用正确的格式化字符串。下面是一些常用的格式化字符串。
格式化字符串 | 含义 |
---|---|
%Y | 年份,比如:2021 |
%m | 月份,比如:08 |
%d | 日,比如:08 |
%H | 小时,24小时制,比如:20 |
%I | 小时,12小时制,比如:08 |
%M | 分钟,比如:00 |
%S | 秒,比如:00 |
%f | 微秒,比如:000000 |
示例
下面是两个代码实例。第一个实例用于获取当前日期和时间的字符串表示,
import datetime
now = datetime.datetime.now()
format_str = '%Y-%m-%d %H:%M:%S'
str_now = datetime.datetime.strftime(now, format_str)
print(str_now)
输出结果:2021-08-08 20:00:00
第二个示例用于计算日期时间的加减。
from datetime import datetime, timedelta
date_string = '2021-08-08 20:00:00'
date = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
add_days = timedelta(days=1)
add_seconds = timedelta(seconds=60)
new_date = date + add_days - add_seconds
new_date_str = datetime.strftime(new_date, '%Y-%m-%d %H:%M:%S')
print(new_date_str)
输出结果:2021-08-09 19:59:00
以上就是datetime模块的使用方法的详细攻略。