Python 日期及时间格式转换

介绍
日期和时间在程序中起着重要的作用,比如在数据分析、文件处理或日志记录等场景中经常会涉及到日期和时间的格式转换。Python提供了丰富的内置库和函数来处理日期和时间。本文将详细介绍Python中日期和时间的格式转换操作,以及一些常用的日期和时间处理库。
datetime模块
在Python中,datetime模块是处理日期和时间的核心模块之一,它提供了多个类和函数来处理日期和时间。这些类和函数可以用于创建、操作、格式化和计算日期和时间。
datetime类
datetime类是datetime模块中最重要的类之一。它用于表示日期和时间,并提供了丰富的方法来对日期和时间进行操作。
使用from datetime import datetime语句可以导入datetime类。
下面是一个示例,演示如何创建一个datetime对象,并使用其方法来获取日期和时间的各个部分。
from datetime import datetime
now = datetime.now() # 获取当前的日期和时间
year = now.year # 获取年份
month = now.month # 获取月份
day = now.day # 获取日期
hour = now.hour # 获取小时
minute = now.minute # 获取分钟
second = now.second # 获取秒数
print(year, month, day, hour, minute, second)
运行上述代码会输出当前日期和时间的各个部分。
2022 8 27 21 30 45
strftime()方法
datetime类提供了一个strftime()方法,用于将日期和时间格式化成指定的字符串。
strftime()方法可以接受一个格式字符串作为参数,用于指定输出的格式。格式字符串中使用特定的占位符表示不同的日期和时间部分。
下面是一些常用的占位符:
%Y:四位数的年份(例如,2022)%y:两位数的年份(例如,22)%m:两位数的月份(01~12)%d:两位数的日期(01~31)%H:24小时制的小时数(00~23)%I:12小时制的小时数(01~12)%M:两位数的分钟数(00~59)%S:两位数的秒数(00~59)%p:上午或下午(AM/PM)%A:星期的全名(例如,Monday)%a:星期的缩写(例如,Mon)%B:月份的全名(例如,January)%b:月份的缩写(例如,Jan)
下面是一个示例,演示如何使用strftime()方法将日期和时间格式化成不同的字符串。
from datetime import datetime
now = datetime.now()
# 将日期和时间格式化成标准的字符串
print(now.strftime("%Y-%m-%d %H:%M:%S"))
# 将日期和时间格式化成中文字符串
print(now.strftime("%Y年%m月%d日 %H时%M分%S秒"))
# 将日期和时间格式化成自定义字符串
print(now.strftime("Today is %A, %B %d, %Y"))
运行上述代码会分别输出当前日期和时间的不同格式化结果。
2022-08-27 21:30:45
2022年08月27日 21时30分45秒
Today is Saturday, August 27, 2022
strptime()方法
datetime类还提供了一个strptime()方法,用于将字符串解析成日期和时间对象。
strptime()方法接受两个参数:一个表示日期和时间的字符串和一个格式字符串。它会根据格式字符串的指定来解析字符串,并返回对应的日期和时间对象。
下面是一个示例,演示如何使用strptime()方法将字符串解析成日期和时间对象。
from datetime import datetime
date_str = "2022-08-27"
time_str = "21:30:45"
# 将字符串解析成日期对象
date = datetime.strptime(date_str, "%Y-%m-%d")
print(date)
# 将字符串解析成时间对象
time = datetime.strptime(time_str, "%H:%M:%S")
print(time)
运行上述代码会分别输出解析后的日期对象和时间对象。
2022-08-27 00:00:00
1900-01-01 21:30:45
dateutil库
dateutil库是Python中一个强大的日期和时间处理库,它提供了丰富的函数和类来处理各种日期和时间操作。在许多情况下,dateutil库能够更方便地处理日期和时间的格式转换。
安装
dateutil库是一个第三方库,可以使用以下命令来安装:
pip install python-dateutil
parse()函数
dateutil库提供了一个parse()函数,用于将各种格式的字符串解析成日期和时间对象。
parse()函数可以自动识别并解析多种日期和时间格式的字符串,无需指定格式字符串。它能够处理各种常用的日期和时间表示形式,例如:
2022-08-272022/08/27Aug 27, 202227th of August 2022
下面是一个示例,演示如何使用parse()函数将字符串解析成日期和时间对象。
from dateutil.parser import parse
date_str1 = "2022-08-27"
date_str2 = "August 27, 2022"
# 将字符串解析成日期对象
date1 = parse(date_str1)
print(date1)
# 将字符串解析成日期对象
date2 = parse(date_str2)
print(date2)
运行上述代码会分别输出解析后的日期对象。
2022-08-27 00:00:00
2022-08-27 00:00:00
relativedelta类
dateutil库还提供了一个relativedelta类,用于在日期和时间之间执行相对运算。
relativedelta类可以创建一个时间间隔,然后根据需要将其添加到或减去日期和时间对象。
下面是一个示例,演示如何使用relativedelta类执行日期和时间的相对运算。
from datetime import datetime
from dateutil.relativedelta import relativedelta
now = datetime.now()
# 增加1天
new_date = now + relativedelta(days=1)
print(new_date)
# 减少2周
new_date = now - relativedelta(weeks=2)
print(new_date)
# 增加3个月
new_date = now + relativedelta(months=3)
print(new_date)
运行上述代码会分别输出进行相对运算后的日期和时间对象。
极客教程