Python——将字符串转换为日期

Python中标准模块datetime能够将字符串转换为日期

from datetime import datetime
text = '2012-09-20'
y = datetime.strptime(text, '%Y-%m-%d')
print(y)
z = datetime.now()
diff = z - y
print(diff)

 

按特定格式输出

nice_z = datetime.strftime(z, '%A %B %d, %Y')
print(nice_z)

 

datetime.strftime性能很差,下面自己编写一个函数

from datetime import datetime
def parse_ymd(s):
    year_s, mon_s, day_s = s.split('-')
    return datetime(int(year_s), int(mon_s), int(day_s))

 

### Python 中将日期对象转换字符串的方法 在 Python 中,可以通过 `datetime` 模块中的 `strftime()` 方法将日期对象转换为指定格式的字符串。以下是详细的说明和示例: #### 使用 `strftime()` 转换日期对象为字符串 `strftime()` 是 `datetime` 对象的一个方法,用于将日期时间格式化为可读性强的字符串形式。通过传递不同的格式码作为参数,可以定义输出字符串的形式。 ```python from datetime import datetime date_object = datetime(2023, 10, 5) # 创建一个日期对象 formatted_date_string = date_object.strftime('%Y-%m-%d') # 将其转换字符串 print(formatted_date_string) ``` 上述代码会输出如下结果: ``` 2023-10-05 ``` 此操作展示了如何利用 `%Y`, `%m`, 和 `%d` 来分别表示四位数的年份、两位数的月份以及两位数的日[^2]。 #### 常见的日期格式符及其含义 为了更好地控制日期字符串的格式,下面列举了一些常用的格式符及其作用: - `%Y`: 完整的四位数年份 (如 2023) - `%m`: 零填充的十进制数表示的月份 (范围是从 01 到 12) - `%d`: 零填充的十进制数表示的一月内的天数 (范围是从 01 到 31) 更多复杂的日期格式可以根据需求组合这些基本单元来实现。 #### 处理自定义分隔符的情况 当需要生成带有特定分隔符(比如 `-`, `/` 或其他字符)的日期字符串时,只需调整传入 `strftime()` 的格式模板即可。例如,要创建形如 `'MM/DD/YYYY'` 的日期字符串,则应这样写: ```python custom_formatted_date = date_object.strftime('%m/%d/%Y') print(custom_formatted_date) ``` 这段脚本会产生这样的输出: ``` 10/05/2023 ``` 这表明我们成功地改变了默认连字符为斜杠,并且保持了相同的逻辑顺序。 #### 错误处理与验证输入数据类型 在实际应用过程中,务必确认所接收的数据确实属于预期类别;否则可能会引发异常错误。例如,在尝试调用 `.strftime()` 函数之前先检查变量是否真的是 `datetime.datetime` 类型实例就显得尤为重要[^4]: ```python if isinstance(date_object, datetime): formatted_date = date_object.strftime('%B %d, %Y') else: raise TypeError('The provided object is not of type datetime.') ``` 以上片段确保只有合法类型的对象才会被进一步加工成最终目标样式——即自然语言风格描述性的完整日期表达式:“October 05, 2023”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值