Python日期格式化
日期在编程中是一个常见的操作,而对日期进行格式化是展示日期信息的重要方式之一。Python提供了多种方式进行日期的格式化操作,本篇文章将详细介绍Python中日期格式化的方法和示例代码。
1. 日期格式化简介
日期格式化是将日期对象按照一定的格式转化为字符串的操作。在实际应用中,经常需要将日期以特定的格式展示给用户,或者将字符串转化为日期对象进行处理。Python中提供了strftime()
和strptime()
两个方法来实现日期的格式化和字符串转日期的操作。
2. strftime()
方法
strftime()
方法是Python中常用的日期格式化方法,它用于将日期对象转化为自定义格式的字符串。以下是strftime()
方法的基本语法:
datetime_object.strftime(format)
其中,datetime_object
是一个日期对象,format
是一个字符串,用于定义日期的输出格式。
2.1 格式字符串的含义
格式字符串中可以包含不同的占位符,将这些占位符与特定的日期格式符号进行替换,从而得到特定格式的日期字符串。
下表列出了常用的日期格式符号及其含义:
符号 | 含义 |
---|---|
%Y | 年份,4位数 |
%y | 年份,2位数 |
%m | 月份,0填充至2位数 |
%d | 日,0填充至2位数 |
%H | 小时,24小时制,0填充至2位数 |
%I | 小时,12小时制,0填充至2位数 |
%M | 分钟,0填充至2位数 |
%S | 秒,0填充至2位数 |
%a | 星期的缩写形式(例如Mon) |
%A | 星期的全称(例如Monday) |
%b | 月份的缩写形式(例如Jan) |
%B | 月份的全称(例如January) |
%c | 日期和时间的字符串表示(例如”%a %b %d %H:%M:%S %Y”) |
%p | 上午/下午标记(例如AM/PM) |
%j | 一年中的第几天,0填充至3位数 |
%U | 一年中的第几周,星期天作为每周的第一天,0填充至2位数 |
%W | 一年中的第几周,星期一作为每周的第一天,0填充至2位数 |
%x | 日期的字符串表示(例如”%m/%d/%Y”) |
%X | 时间的字符串表示(例如”%H:%M:%S”) |
%% | 单个百分号符号 |
2.2 示例代码
下面是几个示例,展示了如何使用strftime()
方法将日期对象格式化为自定义格式的字符串:
import datetime
# 获取当前日期和时间
now = datetime.datetime.now()
# 格式化为 "年-月-日 时:分:秒" 的字符串
s1 = now.strftime("%Y-%m-%d %H:%M:%S")
print(s1)
# 输出:2022-01-01 10:30:45
# 格式化为 "月/日/年 时:分 AM/PM" 的字符串
s2 = now.strftime("%m/%d/%y %I:%M %p")
print(s2)
# 输出:01/01/22 10:30 AM
# 格式化为 "时:分:秒" 的字符串
s3 = now.strftime("%H:%M:%S")
print(s3)
# 输出:10:30:45
# 格式化为 "年.月.日" 的字符串
s4 = now.strftime("%Y.%m.%d")
print(s4)
# 输出:2022.01.01
# 格式化为 "星期几, 月份日 时:分" 的字符串
s5 = now.strftime("%A, %B %d %I:%M")
print(s5)
# 输出:Saturday, January 01 10:30
以上示例演示了如何使用strftime()
方法将日期对象转化为不同自定义格式的字符串。
3. strptime()
方法
strptime()
方法是将字符串转化为日期对象的方法,它用于将提供的字符串按照特定的格式解析为日期对象。以下是strptime()
方法的基本语法:
datetime.datetime.strptime(date_string, format)
其中,date_string
是一个日期类型的字符串,format
是一个字符串,用于定义日期字符串的格式。
3.1 示例代码
下面是几个示例,展示了如何使用strptime()
方法将字符串转化为日期对象:
import datetime
# 将 "2022-01-01 10:30:45" 转化为日期对象
d1 = datetime.datetime.strptime("2022-01-01 10:30:45", "%Y-%m-%d %H:%M:%S")
print(d1)
# 输出:2022-01-01 10:30:45
# 将 "01/01/22 10:30 AM" 转化为日期对象
d2 = datetime.datetime.strptime("01/01/22 10:30 AM", "%m/%d/%y %I:%M %p")
print(d2)
# 输出:2022-01-01 10:30:00
# 将 "10:30:45" 转化为日期对象,日期部分使用当前日期
d3 = datetime.datetime.strptime("10:30:45", "%H:%M:%S")
print(d3)
# 输出:2022-01-01 10:30:45
# 将 "2022.01.01" 转化为日期对象
d4 = datetime.datetime.strptime("2022.01.01", "%Y.%m.%d")
print(d4)
# 输出:2022-01-01 00:00:00
# 将 "Saturday, January 01 10:30" 转化为日期对象
d5 = datetime.datetime.strptime("Saturday, January 01 10:30", "%A, %B %d %I:%M")
print(d5)
# 输出:2022-01-01 10:30:00
以上示例演示了如何使用strptime()
方法将不同格式的日期字符串转化为日期对象。
4. 总结
本文详细介绍了Python中日期格式化的方法,包括strftime()
和strptime()
两个方法。strftime()
方法用于将日期对象转化为自定义格式的字符串,而strptime()
方法用于将字符串按照特定的格式解析为日期对象。通过自定义格式字符串的使用,可以将日期以特定的形式展示给用户,或者将字符串转化为日期对象进行后续的日期操作。