下面是关于Python操作日期和时间的方法的完整攻略,包含以下内容:
- Python中操作日期和时间的模块
- 常用的日期和时间格式
- 日期和时间的转化
- 日期和时间的加减运算
- 示例1:计算两个日期之间的差值
- 示例2:将字符串转换为日期
Python中操作日期和时间的模块
Python中常用的日期和时间模块是datetime
。datetime
模块提供了如下类:
date
: 日期类,包含年、月、日time
: 时间类,包含小时、分钟、秒、微秒datetime
: 日期与时间类,包含日期和时间timedelta
: 时间差,用于日期的加减计算
通过引入datetime
模块,可以使用这些类进行日期和时间的操作。
import datetime
常用的日期和时间格式
日常生活中我们常见的日期和时间格式包括:
- 年月日:例如2021年8月10日,可以用字符串'2021-08-10'来表示
- 时分秒:例如下午3点20分30秒,可以用字符串'15:20:30'来表示
- 年月日时分秒:例如2021年8月10日下午3点20分30秒,可以用字符串'2021-08-10 15:20:30'来表示
在Python中,可以通过以下方式将字符串转化为日期或者时间对象:
函数 | 描述 |
---|---|
datetime.strptime |
将字符串转化为日期时间对象,需要指定格式字符串 |
datetime.date |
将字符串或数字转化为日期对象 |
datetime.time |
将字符串或数字转化为时间对象 |
日期和时间的转化
在Python中,可以通过以下方式将日期或者时间对象转换为字符串:
函数 | 描述 |
---|---|
datetime.strftime() |
将日期时间对象转化为字符串,需要指定格式字符串 |
datetime.date.isoformat |
将日期对象转换为字符串,格式为'YYYY-MM-DD',例如:'2021-08-10' |
datetime.time.isoformat |
将时间对象转换为字符串,格式为'HH:MM:SS.sss',例如:'15:20:30.000000' |
下面是一些常用的日期时间格式化符号:
格式符号 | 描述 |
---|---|
%Y | 年(4位数字) |
%m | 月份(01-12) |
%d | 日(01-31) |
%H | 小时(00-23) |
%M | 分钟(00-59) |
%S | 秒(00-59) |
%f | 微秒(000000-999999) |
%A | 星期几 |
%B | 月份名称 |
%c | 日期时间,格式为'YYYY-MM-DD HH:MM:SS' |
%x | 日期,格式为'YYYY-MM-DD' |
%X | 时间,格式为'HH:MM:SS' |
日期和时间的加减运算
Python中日期和时间的加减运算可以通过datetime.timedelta
类实现。该类表示两个时间之间的差值,例如:
from datetime import datetime, timedelta
now = datetime.now() # 获取当前时间
delta = timedelta(days=1) # 时间差为1天
yesterday = now - delta # 计算昨天的日期
tomorrow = now + delta # 计算明天的日期
示例1:计算两个日期之间的差值
from datetime import datetime
date1 = datetime.strptime('20211231', '%Y%m%d')
date2 = datetime.strptime('20220101', '%Y%m%d')
delta = date2 - date1
print(f'两个日期之间相差:{delta.days} 天')
输出结果:
两个日期之间相差:1 天
在这个例子中,我们首先引入了datetime
模块,然后使用strptime
函数将字符串格式的日期转化为datetime
类型的日期。注意strptime
函数需要指定日期字符串的格式。此处我们使用了%Y、%m和%d来分别表示年、月和日。接着我们可以计算日期差值,并使用days
属性获取相差天数。
示例2:将字符串转换为日期
from datetime import datetime, date, time
date_str = '2021-08-10'
date_obj = datetime.strptime(date_str, '%Y-%m-%d').date()
print(f'date_str: {date_str}, date_obj: {date_obj}')
输出结果:
date_str: 2021-08-10, date_obj: 2021-08-10
在这个例子中,我们将字符串'2021-08-10'转化为日期对象。是通过调用datetime.strptime
函数将字符串转化为datetime
类型,再通过调用date
方法获取date
类型的日期。注意在格式字符串中我们用%Y、%m和%d分别表示年、月和日。最后我们打印出原始字符串和转换后的日期对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python操作日期和时间的方法 - Python技术站