如何轻松分辨strftime和strptime

本文介绍了Python中datetime模块的两个关键函数:strftime用于将计算机时间格式转换为自定义格式,如'2021-03-15-11',而strptime则用于将自定义格式的时间字符串转换回计算机时间。通过这两个函数,开发者可以方便地在不同时间格式间进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

时间转换

时间转换
strftime 将时间从 计算机格式 转为 自定义格式

import datetime
present = datetime.datetime.now() #获取现在时刻(计算机格式)
now=datetime.datetime.now().strftime(’%Y-%m-%d-%H’) #将计算机格式转换为自定义格式
now1=datetime.datetime.now().strftime(’%Y%m%d%H’) #将计算机格式转换为自定义格式

strptime 将时间从自定义格式转为计算机格式

from datetime import datetime
val=‘2021-03-15-11’
val_time=datetime. strptime(val,’%Y-%m-%d-%H’) #将自定义格式时间转换为计算机格式
val1=‘2021-03-15-11-13-11’

 一张表让你轻松明白strftime 和strptime

### Python 中 strftime strptime 的用法 `strftime` `strptime` 是 Python 标准库模块 `datetime` 提供的重要函数,分别用于将日期时间对象格式化为字符串以及将字符串解析为日期时间对象。 --- #### 1. `strftime`: 将日期时间对象转换为字符串 `strftime` 函数允许开发者通过指定的格式模板将日期时间对象 (`datetime`, `date`, 或 `time`) 转换为人类可读的字符串形式。 ##### 基本语法 ```python datetime_object.strftime(format_string) ``` - **datetime_object**: 需要被格式化的日期时间对象。 - **format_string**: 定义输出字符串格式的模板。 ##### 示例代码 以下是一些典型的 `strftime` 使用场景: ```python from datetime import datetime now = datetime.now() # 输出当前时间的完整表示 formatted_date_full = now.strftime("%Y-%m-%d %H:%M:%S") # e.g., '2023-10-05 14:30:00' [^1] # 输出仅包含日期部分 formatted_date_only = now.strftime("%Y-%m-%d") # e.g., '2023-10-05' # 输出仅包含时间部分 formatted_time_only = now.strftime("%H:%M:%S") # e.g., '14:30:00' # 自定义格式:星期几、月份名称等 custom_formatted = now.strftime("%A, %B %d, %Y") # e.g., 'Thursday, October 05, 2023' ``` --- #### 2. `strptime`: 将字符串解析为日期时间对象 `strptime` 函数的作用正好相反于 `strftime`,它可以根据给定的格式模板将字符串解析为对应的日期时间对象。 ##### 基本语法 ```python datetime.strptime(string_to_parse, format_string) ``` - **string_to_parse**: 待解析的日期时间字符串。 - **format_string**: 定义输入字符串格式的模板。 ##### 示例代码 以下是一些典型的 `strptime` 使用场景: ```python from datetime import datetime # 解析完整的日期时间字符串 parsed_datetime = datetime.strptime("2023-10-05 14:30:00", "%Y-%m-%d %H:%M:%S") # e.g., datetime(2023, 10, 5, 14, 30) # 解析仅有日期部分的字符串 parsed_date = datetime.strptime("2023-10-05", "%Y-%m-%d").date() # e.g., date(2023, 10, 5) # 解析仅有时间部分的字符串 parsed_time = datetime.strptime("14:30:00", "%H:%M:%S").time() # e.g., time(14, 30, 0) # 处理自定义格式的字符串 custom_parsed = datetime.strptime("Thursday, October 05, 2023", "%A, %B %d, %Y") # e.g., datetime(2023, 10, 5) ``` --- #### 3. 常见格式化字符对照表 以下是常用的格式化字符及其含义: | 字符 | 描述 | 示例 | |------|--------------------------|---------------| | `%Y` | 四位数年份 | 2023 | | `%y` | 两位数年份 | 23 | | `%m` | 月份(零填充) | 01 到 12 | | `%d` | 日(零填充) | 01 到 31 | | `%H` | 小时(24小时制,零填充) | 00 到 23 | | `%I` | 小时(12小时制,零填充) | 01 到 12 | | `%M` | 分钟(零填充) | 00 到 59 | | `%S` | 秒(零填充) | 00 到 59 | | `%f` | 微妙 | 000000 到 999999| | `%a` | 星期缩写 | Mon | | `%A` | 星期全名 | Monday | | `%b` | 月份缩写 | Jan | | `%B` | 月份全名 | January | 更多信息可以参考官方文档[^1]。 --- #### 4. 实际应用场景对比 下面是一个综合的例子,展示了如何结合 `strftime` `strptime` 进行日期时间的操作: ```python from datetime import datetime # 输入字符串 input_str = "Oct 5, 2023" # 使用 strptime 将字符串解析为日期时间对象 dt_obj = datetime.strptime(input_str, "%b %d, %Y") # 使用 strftime 将日期时间对象格式化为新的字符串 output_str = dt_obj.strftime("%Y-%m-%d") print(f"Original String: {input_str}") # Original String: Oct 5, 2023 print(f"Parsed & Formatted Date: {output_str}") # Parsed & Formatted Date: 2023-10-05 ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值