python中datetime模块中strftime/strptime函数

本文详细介绍如何使用Python进行日期时间的格式化、字符串转换、时间戳转换等操作,包括datetime和time模块的使用方法。

 f==format     p==parse

1、获取当前时间(日期格式)

from datetime import datetime
datetime.now()
#输出  datetime.datetime(2019, 9, 12, 20, 17, 15, 426867)

2、由日期格式转化为字符串格式的函数为: datetime.datetime.strftime()

datetime.now().strftime('%b-%m-%y %H:%M:%S')
#输出'Sep-09-19 20:12:56'

3、由字符串格式转化为日期格式的函数为: datetime.datetime.strptime()

datetime.strptime('Sep-09-19 20:12:56','%b-%d-%y %H:%M:%S')
#输出为:    datetime.datetime(2019, 9, 9, 20, 12, 56)

4、两个函数都涉及日期时间的格式化字符串,列举如下:

%a 星期几的简写;如 星期三为Web 
%A 星期几的全称;如 星期三为Wednesday 
%b 月份的简写; 如4月份为Apr 
%B 月份的全称; 如4月份为April 
%c 标准的日期的时间串;(如: 04/07/10 10:43:39) 
%C 年份的后两位数字 
%d 十进制表示的每月的第几天 
%D 月/天/年 
%e 在两字符域中,十进制表示的每月的第几天 
%F 年-月-日 
%g 年份的后两位数字,使用基于周的年 
%G 年分,使用基于周的年 
%h 简写的月份名 
%H 24小时制的小时 
%I 12小时制的小时 
%j 十进制表示的每年的第几天 
%m 十进制表示的月份 
%M 十时制表示的分钟数 
%n 新行符 
%p 本地的AM或PM的等价显示 
%r 12小时的时间 
%R 显示小时和分钟:hh:mm 
%S 十进制的秒数 
%t 水平制表符 
%T 显示时分秒:hh:mm:ss 
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0) 
%U 第年的第几周,把星期日做为第一天(值从0到53) 
%V 每年的第几周,使用基于周的年 
%w 十进制表示的星期几(值从0到6,星期天为0) 
%W 每年的第几周,把星期一做为第一天(值从0到53) 
%x 标准的日期串 
%X 标准的时间串 
%y 不带世纪的十进制年份(值从0到99) 
%Y 带世纪部分的十制年份 
%z,%Z 时区名称,如果不能得到时区名称则返回空字符。 
%% 百分号

============================================================================

 

 

import datetime

import time

1、string格式转换成datetime格式

string = '2019-09-12'

date_time = datetime.datetime.strptime(string,'%Y-%m-%d')

 

2、datetime格式转换成String格式

string = date_time.strftime('%Y-%m-%d')

 

3、datetime转换为时间戳

time_stamp = time.mktime(date_time.timetuple())

 

4、时间戳转换成string

string = time.strftime('%Y-%m-%d',time.localtime(time_stamp))

转载于:https://www.cnblogs.com/Neroi/p/11514984.html

<think>好的,我现在需要帮助用户了解Pythondatetime模块strftimestrptime函数用法。首先,我得回忆这两个函数的基本作用。strftime是用来将日期对象格式化为字符串,而strptime则是将字符串解析为日期对象。对吗?嗯,对的。用户可能需要具体的示例和格式说明。 接下来,我需要确认用户提供的引用内容,看看有没有可以直接用到的信息。引用3提到strftimestrptime的区别,引用4有代码示例,引用5展示了带时区的解析。这些都可以整合到回答中。 用户的问题是关于使用方法和示例,所以结构上应该分点说明,可能先介绍每个函数,再给出示例代码。同时要注意中文字符的使用,确保语法正确。另外,用户提到要生成相关问题,这部分需要最后添加几个相关问题。 需要检查是否有遗漏的细节,比如格式化字符串的常用符号,比如%Y代表四位年份,%m代表月份等。可能需要在回答中列出常见格式符号,这样用户参考起来更方便。同时,注意错误处理,比如strptime时格式不匹配会报错,这点引用4也提到了,应该包含进去。 还要注意引用标注的正确性,每个引用来源在回答中的对应位置要正确标记。例如,引用4中的代码示例应该标注[^4],引用5的时区处理标注[^5]等。 然后,组织内容的结构。首先概述两个函数的用途,然后分别详细说明,给出示例代码,再比较它们的区别,最后常见问题或注意事项。这样用户能逐步理解。 在写示例代码时,确保语法正确,比如datetime.datetime.today()获取当前时间,strftime的参数是格式字符串,strptime需要字符串和格式匹配。同时,时区的处理可能是个高级话题,引用5中的例子可以展示如何处理带时区的字符串。 最后,生成相关问题需要考虑用户可能进一步想知道的内容,比如如何处理时区,格式字符串有哪些常用选项,错误处理的方法,或者实际应用场景的例子。 总结一下,回答的结构应该是: 1. 函数概述 2. strftime用法和示例 3. strptime用法和示例 4. 区别对比 5. 注意事项(如格式匹配、时区) 6. 相关问题 检查所有引用是否正确对应,确保代码示例正确无误,并且用中文清晰解释每个步骤。同时,按照用户的要求,行内公式用$...$,不过这里可能用不上数学公式,所以可能不需要处理这部分。但如果有提到时间计算,可能需要用公式,比如时间差的计算,但用户的问题主要集中在strftimestrptime,可能不需要数学表达式。 最后,生成三个相关问题,确保问题与主题相关,能引导用户进一步学习,比如时区处理、常见格式符号、错误解决方法等。</think>### Python datetime模块strftimestrptime函数详解 #### 1. 函数概述 - **strftime**: 将日期/时间对象格式化为字符串(`str` -> `datetime`),常用于输出可读的日期时间格式[^3]。 - **strptime**: 将字符串解析为日期/时间对象(`datetime` -> `str`),常用于处理用户输入或文件中的时间数据[^3]。 --- #### 2. strftime函数用法 **语法**:`datetime对象.strftime(format)` **功能**:按指定格式输出字符串,支持60+种格式符号。 **示例**: ```python import datetime now = datetime.datetime.today() # 格式化为标准日期时间 formatted = now.strftime('%Y-%m-%d %H:%M:%S') # 输出:2024-01-01 15:30:45 # 自定义格式 custom = now.strftime('现在是%Y年%m月%d日,%H时%M分') # 输出:现在是2024年01月01日,15时30分 ``` **常用格式符号**: | 符号 | 含义 | 示例 | |------|--------------|------------| | `%Y` | 四位年份 | 2024 | | `%m` | 两位月份 | 01 | | `%d` | 两位日期 | 01 | | `%H` | 24小时制小时 | 15 | | `%M` | 分钟 | 30 | --- #### 3. strptime函数用法 **语法**:`datetime.datetime.strptime(string, format)` **功能**:将字符串按格式解析为datetime对象,需严格匹配格式。 **示例**: ```python from datetime import datetime # 解析标准日期字符串 date_str = "2024-08-20" date_obj = datetime.strptime(date_str, "%Y-%m-%d") # 成功转换为datetime对象 # 含时区解析(需Python 3.2+) tz_str = "2024-08-20-15-30-45+0800" tz_obj = datetime.strptime(tz_str, "%Y-%m-%d-%H-%M-%S%z") # 带时区信息[^5] ``` **常见错误**: ```python # 格式不匹配报错 datetime.strptime("2024/08/20", "%Y-%m-%d") # ValueError ``` --- #### 4. 核心区别对比 | 特性 | strftime | strptime | |--------------|------------------------------|------------------------------| | 输入类型 | datetime对象 | 字符串 | | 输出类型 | 字符串 | datetime对象 | | 方向 | 对象 -> 字符串 | 字符串 -> 对象 | | 典型应用场景 | 日志记录、界面显示、文件输出 | 用户输入处理、数据加载 | --- #### 5. 注意事项 1. **格式一致性**:strptime解析时字符串必须与格式完全匹配(包括分隔符),例如`"2024/08/20"`需对应`%Y/%m/%d`[^4]。 2. **时区处理**:解析带时区字符串需使用`%z`格式符号(仅Python 3.2+支持)[^5]。 3. **性能优化**:频繁解析时建议预编译格式字符串。 --- §§ 1. 如何在strptime中处理带时区的日期字符串? 2. 常用的日期格式符号有哪些?如何组合使用? 3. strptime解析失败时有哪些调试方法?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值