Python案例怎么格式化日期时间?

wen python案例 8

本文目录导读:

Python案例怎么格式化日期时间?

  1. 基本格式化方法
  2. 常用格式化符号
  3. 完整格式化符号表
  4. 实际应用案例
  5. 时区相关格式化
  6. 实用的格式化函数封装

在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中日期时间格式化的常用方法,根据实际需求选择合适的格式化字符串即可。

抱歉,评论功能暂时关闭!