python3时间格式化
时间: 2024-12-27 17:26:41 浏览: 12
### Python3 中的时间格式化
#### 使用 `strftime` 和 `strptime`
Python 提供了强大而灵活的方式来进行时间和日期的格式化。对于将 `datetime` 对象转换成字符串表示,可以采用 `strftime()` 函数;相反地,如果要解析一个代表时间信息的字符串,则可利用 `strptime()` 来创建对应的 `datetime` 实例[^1]。
```python
from datetime import datetime
# 当前本地时间为 datetime 对象
now = datetime.now()
# 将 datetime 转换为特定格式的字符串
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print(f"Formatted date string is {formatted_date}")
# 解析给定格式的字符串到 datetime 对象
date_string = "2023-10-08 15:30:00"
parsed_datetime = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(parsed_datetime)
```
#### 处理时区敏感的数据
当涉及到不同地区的具体时刻表达时,就需要考虑时区的影响。为此,在较新的 Python 版本里(特别是自 3.9 开始),官方推荐使用内置的支持 IANA 数据库的标准类——`zoneinfo.ZoneInfo` 来代替第三方库 `pytz` 进行跨地区时间计算[^2]。
```python
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
utc_now = datetime.now(timezone.utc)
# 设置目标时区为中国标准时间 CST (UTC+8)
target_tz = ZoneInfo('Asia/Shanghai')
local_time = utc_now.astimezone(target_tz)
print(local_time.strftime('%Y-%m-%d %H:%M:%S %Z'))
```
#### 利用 f-string 或者 `.format()` 方法增强输出效果
除了上述基本操作外,还可以借助于现代 Python 的特性如 f-string 或者传统的 `.format()` 方式进一步美化最终呈现的结果[^4][^5]。
```python
event_name = 'Conference'
start_time = local_time.replace(hour=9, minute=0).strftime('%I:%M%p')
message_with_fstring = (
f"The event '{event_name}' starts at "
f"{start_time} in the time zone of {local_time.tzname()}."
)
print(message_with_fstring)
template_message = (
"The event '{}' starts at {} in the time zone of {}."
)
message_with_format_method = template_message.format(
event_name,
start_time,
local_time.tzname()
)
print(message_with_format_method)
```
阅读全文