本文目录导读:

在Python中,格式化日期时间主要使用datetime模块中的strftime()和strptime()方法,以下是常用的格式化方式:
基本格式化方法
当前时间格式化
from datetime import datetime
# 获取当前时间
now = datetime.now()
# 格式化为字符串
formatted = now.strftime("%Y-%m-%d %H:%M:%S")
print(formatted) # 输出:2024-01-15 14:30:45
formatted_date = now.strftime("%Y/%m/%d")
print(formatted_date) # 输出:2024/01/15
formatted_time = now.strftime("%H:%M:%S")
print(formatted_time) # 输出:14:30:45
字符串转日期时间
# 将字符串解析为datetime对象 date_str = "2024-01-15 14:30:45" date_obj = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S") print(date_obj) # 输出:2024-01-15 14:30:45
常用格式化符号
from datetime import datetime
now = datetime.now()
# 年-月-日
print(now.strftime("%Y-%m-%d")) # 2024-01-15
print(now.strftime("%y-%m-%d")) # 24-01-15
# 时:分:秒
print(now.strftime("%H:%M:%S")) # 14:30:45
print(now.strftime("%I:%M:%S %p")) # 02:30:45 PM (12小时制)
# 星期和月份
print(now.strftime("%A")) # Monday (完整星期)
print(now.strftime("%a")) # Mon (缩写星期)
print(now.strftime("%B")) # January (完整月份)
print(now.strftime("%b")) # Jan (缩写月份)
# 完整日期
print(now.strftime("%c")) # Mon Jan 15 14:30:45 2024
完整格式化符号表
| 符号 | 说明 | 示例 |
|---|---|---|
%Y |
4位年份 | 2024 |
%y |
2位年份 | 24 |
%m |
月份(01-12) | 01 |
%d |
日期(01-31) | 15 |
%H |
24小时制小时(00-23) | 14 |
%I |
12小时制小时(01-12) | 02 |
%M |
分钟(00-59) | 30 |
%S |
秒(00-59) | 45 |
%p |
AM/PM | PM |
%A |
完整星期名称 | Monday |
%a |
缩写星期名称 | Mon |
%B |
完整月份名称 | January |
%b |
缩写月份名称 | Jan |
%j |
一年中的第几天(001-366) | 015 |
%w |
星期(0-6,0为周日) | 1 |
%U |
一年中的第几周(周日为第一天) | 02 |
%W |
一年中的第几周(周一为第一天) | 03 |
实际应用案例
日志时间格式化
from datetime import datetime
# 日志格式
log_time = datetime.now().strftime("[%Y-%m-%d %H:%M:%S]")
log_message = f"{log_time} User logged in"
print(log_message)
# 输出:[2024-01-15 14:30:45] User logged in
文件名时间戳
# 文件命名
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"report_{timestamp}.txt"
print(filename) # 输出:report_20240115_143045.txt
数据库日期处理
# 格式化日期用于数据库存储
date_input = "2024-01-15"
db_format = datetime.strptime(date_input, "%Y-%m-%d").date()
print(db_format) # 输出:2024-01-15
# 数据库日期转显示格式
db_date = datetime(2024, 1, 15)
display_format = db_date.strftime("%B %d, %Y")
print(display_format) # 输出:January 15, 2024
时区相关格式化
from datetime import datetime, timezone, timedelta
# UTC时间
utc_now = datetime.now(timezone.utc)
print(utc_now.strftime("%Y-%m-%d %H:%M:%S %Z"))
# 输出:2024-01-15 06:30:45 UTC
# 指定时区
beijing = timezone(timedelta(hours=8))
bj_time = datetime.now(beijing)
print(bj_time.strftime("%Y-%m-%d %H:%M:%S %Z"))
# 输出:2024-01-15 14:30:45 UTC+08:00
实用的格式化函数封装
from datetime import datetime
def format_datetime(dt=None, format_str="%Y-%m-%d %H:%M:%S"):
"""日期时间格式化函数"""
if dt is None:
dt = datetime.now()
return dt.strftime(format_str)
def parse_datetime(date_str, format_str="%Y-%m-%d %H:%M:%S"):
"""字符串转日期时间"""
return datetime.strptime(date_str, format_str)
# 使用示例
print(format_datetime()) # 默认格式
print(format_datetime(format_str="%Y年%m月%d日")) # 中文格式
parsed = parse_datetime("2024-01-15")
print(parsed) # datetime对象
这些就是Python中日期时间格式化的常用方法,根据实际需求选择合适的格式化字符串即可。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播