Python中的strftime()

本文深入解析 Python 的 strftime 函数,详细解释了如何使用 %y、%Y、%j、%m、%b、%B、%d、%H、%l、%M、%S、%U、%W、%w、%Z、%x、%X、%c 和 %% 等格式字符进行日期和时间的格式化。

>>> import time
>>> time.strftime("%y-%m-%d")
'15-06-18'

>>> time.strftime("%c")
'06/18/15 09:27:38'


格式含义取值范围(格式)
%y去掉世纪的年份00-99,如"15"
%Y完整的年份如"2015"
%j指定日期是一年中的第几天001-366
%m返回月份01-12
%b本地简化月份的名称简写英文月份
%B本地完整月份的名称完整英文月份
%d该月的第几日如5月1日返回"01"
%H该日的第几时(24小时制)00-23
%l该日的第几时(12小时制)01-12
%M分钟00-59
%S00-59
%U在该年中的第多少星期(以周日为一周起点)00-53
%W同上,只不过是以周一为起点00-53
%w一星期中的第几天0-6
%Z时区在中国大陆测试,返回CST,即China Standard Time
%x日期日/月/年
%X时间时:分:秒
%c详细日期时间日/月/年 时:分:秒
%%‘%’字符‘%’字符
%p上下午AM or PM

Python 中,`strftime` 是一个非常实用的方法,主要用于将日期对象转换为字符串,从而实现日期格式的自定义。以下是关于 `strftime` 函数的使用指南: ### 基本使用方法 `strftime` 方法是日期对象的一个方法,使用时需要在日期对象后调用它,并传入一个格式化字符串作为参数。格式化字符串中包含各种格式化指令,这些指令以 `%` 开头,用于指定日期和时间的不同部分的显示格式。 以下是一个简单的示例代码: ```python import datetime # 创建一个日期对象 dt = datetime.date(2019, 10, 20) # 使用 strftime 方法自定义日期格式 formatted_date = dt.strftime("%d-%m-%Y") print(formatted_date) # 输出: 20-10-2019 ``` ### 常用格式化指令及功能 - `%Y`:表示四位数的年份,如 2019、2020 等。 - `%m`:表示两位数的月份,范围从 01 到 12。 - `%d`:表示两位数的日期,范围从 01 到 31。 - `%c`:表示当地的日期和时间。 - `%X`:表示当地的时间。 - `%A`:表示完整的星期几名称,如 Tuesday、Wednesday 等。 - `%B`:表示完整的月份名称,如 September、October 等。 - `%H`:表示 24 小时制的小时数,范围从 00 到 23。 - `%M`:表示分钟数,范围从 00 到 59。 以下是更多示例代码: ```python import datetime # 获取当前日期和时间 dt = datetime.datetime.now() # 使用不同的格式化指令 print(dt.strftime("%c")) # 输出当地的日期和时间,如 Tue Sep 10 10:45:46 2019 print(dt.strftime("%A %B %d %X")) # 输出完整的星期几、月份、日期和当地时间,如 Tuesday September 10 10:45:46 print(dt.strftime("%A %B %d %H:%M")) # 输出完整的星期几、月份、日期和小时:分钟,如 Tuesday September 10 10:45 ``` ### 注意事项 - **日期对象类型**:`strftime` 方法只能用于 `datetime.date`、`datetime.datetime` 或 `datetime.time` 类型的对象。如果使用其他类型的对象调用该方法,会引发 `AttributeError` 异常。 - **格式化字符串**:格式化字符串中的指令必须以 `%` 开头,否则会被当作普通字符处理。同时,要确保格式化指令的使用符合日期对象的类型,例如,`datetime.date` 对象不包含时间信息,因此使用 `%H`、`%M` 等时间相关的指令可能会导致不符合预期的结果。 - **本地化问题**:部分格式化指令(如 `%c`、`%A`、`%B` 等)的输出会受到系统本地化设置的影响,不同的本地化设置可能会导致输出的语言和格式有所不同。 ### 自定义日期格式化函数示例 可以将 `strftime` 封装成一个自定义函数,方便在项目中重复使用: ```python import datetime def format_date(date_obj): return date_obj.strftime("%Y-%m-%d") # 使用自定义函数 dt = datetime.date(2023, 11, 15) print(format_date(dt)) # 输出: 2023-11-15 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值