百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python时间模块格式代码指南

off999 2025-04-27 15:35 8 浏览 0 评论

一、核心格式代码表

格式代码

描述

示例输出

%Y

四位数年份

2024

%y

两位数年份(00-99)

24

%m

补零月份(01-12)

06

%d

补零日期(01-31)

01

%H

24小时制补零小时(00-23)

14

%I

12小时制补零小时(01-12)

02

%M

补零分钟(00-59)

05

%S

补零秒(00-59)

09

%f

微秒(000000-999999)

123456

%z

UTC偏移(±HHMM[SS])

+0800 或 +08:00*

%Z

时区名称

CST

%A

星期全名

Monday

%a

星期缩写

Mon

%B

月份全名

June

%b

月份缩写

Jun

%j

年中的第几天(001-366)

123

%p

AM/PM(大写)

AM 或 PM

%Z

时区名称

CST

%z

UTC偏移(±HHMM)

+0800

%U

年中的周数(周日为一周开始)

22

%W

年中的周数(周一为一周开始)

22

%w

星期几(0=周日)

1 (周一)

%c

本地日期时间表示

Mon Jun 1 14:05:09 2024

%C

本世纪

20

%x

本地日期表示

06/01/24

%X

本地时间表示

14:05:09

二、代码示例

1. strftime 格式化(时间 → 字符串)

from datetime import datetime
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S.%f") 
print(formatted) # 输出:2024-06-01 14:05:09.123456
weekday = now.strftime("今天是%A,本月是%B")
print(weekday) # 输出:今天是Saturday,本月是June

2. strptime 解析(字符串 → 时间)

date_str = "2024年06月01日 14:30"
dt = datetime.strptime(date_str, "%Y年%m月%d日 %H:%M")
print(dt) # 输出:2024-06-01 14:30:00
iso_str = "2024-06-01T14:30:45+08:00"
dt_utc = datetime.strptime(iso_str, "%Y-%m-%dT%H:%M:%S%z")
print(dt_utc) # 输出:2024-06-01 14:30:45+08:00

三、特殊场景处理

1.格式化日期时间

from datetime import datetime
now = datetime.now()
# 完整日期时间
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 2023-01-01 12:00:00
# 带星期和月份名称
print(now.strftime("%A, %B %d, %Y")) # Monday, January 01, 2023
# 带AM/PM
print(now.strftime("%I:%M %p")) # 12:00 PM
# 带时区
print(now.strftime("%Y-%m-%d %H:%M:%S %Z")) # 2023-01-01 12:00:00 UTC

2.解析日期时间

from datetime import datetime
# 从字符串解析日期时间
dt_str = "2023-01-01 12:00:00"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M:%S")
print(dt) # 2023-01-01 12:00:00
# 解析带星期和月份名称的字符串
dt_str = "Monday, January 01, 2023"
dt = datetime.strptime(dt_str, "%A, %B %d, %Y")
print(dt) # 2023-01-01 00:00:00

3.毫秒/微秒处理

# 包含微秒的格式
micro_str = datetime.now().strftime("%Y%m%d_%H%M%S_%f")
print(micro_str) # 输出:20240601_140530_123456
# 仅保留毫秒
millis_str = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
print(millis_str) # 输出:2024-06-01 14:05:30.123

4. 时区格式化

from datetime import datetime, timezone
# 带时区的时间
utc_time = datetime.now(timezone.utc)
print(utc_time.strftime("%Y-%m-%d %H:%M:%S %Z")) # 输出:2024-06-01 06:05:30 UTC
# 转换时区显示
bj_time = utc_time.astimezone(timezone(timedelta(hours=8)))
print(bj_time.strftime("%Y-%m-%d %H:%M:%S %z")) # 输出:2024-06-01 14:05:30 +0800

四、注意事项

  1. 平台差异
%Z 在 Windows 上可能返回空字符串%c 在不同地区的输出格式不同
  1. 错误处理
try:
datetime.strptime("2024/13/01", "%Y/%m/%d")
except ValueError as e:
print(f"解析错误: {e}") # 输出:month must be in 1..12
  1. 性能优化
# 预编译格式(高频调用场景)
from datetime import datetime
ISO_FORMAT = "%Y-%m-%dT%H:%M:%S%z"
dt = datetime.strptime("2024-06-01T14:30:45+0800", ISO_FORMAT)
  1. ISO 8601格式
from datetime import datetime
dt = datetime(2024, 7, 9, 15, 30, 45, 123456)
print(dt.isoformat()) # 输出:2024-07-09T15:30:45.123456
# 对应格式化字符串
fmt = "%Y-%m-%dT%H:%M:%S.%f"
  1. 带时区解析(Python 3.7+)
# 解析带冒号的时区偏移
dt_str = "2024-01-23 15:30+08:00"
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M%z")

五、常用格式模板

场景

格式字符串

示例输出

日志文件名

"%Y%m%d_%H%M%S"

20240601_143045

文件命名

%Y%m%d_%H%M%S

20240123_153045

中文日期

%Y年%m月%d日

2024年01月23日

12小时制时间

%I:%M:%S %p

03:30:45 PM

周数显示

第%W周(%Y年)

第04周(2024年)

数据库存储

"%Y-%m-%d %H:%M:%S.%f"

2024-06-01 14:30:45.123456

HTTP头日期

"%a, %d %b %Y %H:%M:%S GMT"

Sat, 01 Jun 2024 06:30:45 GMT

用户友好显示

"%Y年%m月%d日 %H:%M"

2024年06月01日 14:30

完整日期时间

%A, %B %d, %Y %I:%M %p

Tuesday, January 23, 2024 03:30 PM

六、平台差异注意

符号

Windows支持

Linux/macOS支持

注意事项

%z

Python 3.7+

Python 3.3+

解析+08:00需Python 3.7+

%Z

有限

有限

可能返回空字符串

%c

依赖区域设置

依赖区域设置

不同系统输出格式不同

相关推荐

Python 数据分析——利用Pandas进行分组统计

话说天下大势,分久必合,合久必分。数据分析也是如此,我们经常要对数据进行分组与聚合,以对不同组的数据进行深入解读。本章将介绍如何利用Pandas中的GroupBy操作函数来完成数据的分组、聚合以及统计...

python数据分析:介绍pandas库的数据类型Series和DataFrame

安装pandaspipinstallpandas-ihttps://mirrors.aliyun.com/pypi/simple/使用pandas直接导入即可importpandasas...

使用DataFrame计算两列的总和和最大值_[python]

【如果对您有用,请关注并转发,谢谢~~】最近在处理气象类相关数据的空间计算,在做综合性计算的时候,DataFrame针对每列的统计求和、最大值等较为方便,对某行的两列或多列数据进行求和与最大值等的简便...

8-Python内置函数

Python提供了丰富的内置函数,这些函数可以直接使用而无需导入任何模块。以下是一些常用的内置函数及其示例:1-print()1-1-说明输出指定的信息到控制台。1-2-例子2-len()2-1-说...

Python中函数式编程函数: reduce()函数

Python中的reduce()函数是一个强大的工具,它通过连续地将指定的函数应用于序列(如列表)来对序列(如列表)执行累积操作。它是functools模块的一部分,这意味着您需要在使用它之...

万万没想到,除了香农计划,Python3.11竟还有这么多性能提升

众所周知,Python3.11版本带来了较大的性能提升,但是,它具体在哪些方面上得到了优化呢?除了著名的“香农计划”外,它还包含哪些与性能相关的优化呢?本文将带你一探究竟!作者:BeshrKay...

最全python3.11版12类75个内置函数大全

获取全部内置函数:importbuiltins#导入模块yc=[]#异常属性nc=[]#不可调用fn=[]#内置函数defll(ty=builtins):...

软件测试笔试题

测试工程师岗位,3-5年,10-14k1.我司有一款产品,类似TeamViewer,向日葵,mstsc,QQ远程控制产品,一个PC客户端产品,请设想一下测试要点。并写出2.写出常用的SQL语句8条,l...

备战各大互联网巨头公司招聘会,最全Python面试大全,共300题

前言众所周知,越是顶尖的互联网公司在面试这一part的要求就越高,需要你有很好的技术功底、项目经验、一份漂亮的简历,当然还有避免不了的笔试过关。对于Python的工程师来说,全面掌握好有关Python...

经典 SQL 数据库笔试题及答案整理

马上又是金三银四啦,有蛮多小伙伴在跳槽找工作,但对于年限稍短的软件测试工程师,难免会需要进行笔试,而在笔试中,基本都会碰到一道关于数据库的大题,今天这篇文章呢,就收录了下最近学员反馈上来的一些数据库笔...

用Python开发日常小软件,让生活与工作更高效!附实例代码

引言:Python如何让生活更轻松?在数字化时代,编程早已不是程序员的专属技能。Python凭借其简洁易学的特点,成为普通人提升效率、解决日常问题的得力工具。无论是自动化重复任务、处理数据,还是开发个...

太牛了!102个Python实战项目被我扒到了!建议收藏!

挖到宝了!整整102个Python实战项目合集,从基础语法到高阶应用全覆盖,附完整源码+数据集,手把手带你从代码小白变身实战大神!这波羊毛不薅真的亏到哭!超全项目库,学练一站式搞定这份资...

Python中的并发编程

1.Python对并发编程的支持多线程:threading,利用CPU和IO可以同时执行的原理,让CPU不会干巴巴等待IO完成。多进程:multiprocessing,利用多核CPU...

Python 也有内存泄漏?

1.背景前段时间接手了一个边缘视觉识别的项目,大功能已经开发的差不多了,主要是需要是优化一些性能问题。其中比较突出的内存泄漏的问题,而且不止一处,有些比较有代表性,可以总结一下。为了更好地可视化内存...

python爬虫之多线程threading、多进程、协程aiohttp批量下载图片

一、单线程常规下载常规单线程执行脚本爬取壁纸图片,只爬取一页的图片。importdatetimeimportreimportrequestsfrombs4importBeautifu...

取消回复欢迎 发表评论: