python时间日期格式化和反格式化
strftime()
和strptime()
行为
date
,datetime
和time
对象都支持一种 strftime(format)
方法,以创建一个表示显式格式字符串控制下的时间的字符串。从广义上讲, 尽管不是所有对象都支持一种方法,但它的d.strftime(fmt)
行为类似于time
模块。time.strftime(fmt, d.timetuple())timetuple()
相反,datetime.strptime()
类方法datetime
从表示日期和时间的字符串以及相应的格式字符串创建 对象。除非格式包括支持但被丢弃的子秒组件或时区偏移信息,否则等效于。datetime.strptime(date_string,format)datetime(*(time.strptime(date_string, format)[0:6]))datetime.strptimetime.strptime
对于time
对象,不应使用年,月和日的格式代码,因为时间对象没有这样的值。如果它们仍在使用,1900
则替换年份,以及1
月份和日期。
对于date
对象,不应使用小时,分钟,秒和微秒的格式代码,因为date
对象没有这样的值。如果它们仍在使用,0
则替代它们。
支持的全套格式代码因平台而异,因为Python调用平台C库的strftime()
功能,平台变体很常见。要查看平台支持的完整格式代码集,请参阅strftime(3)文档。
出于同样的原因,处理包含无法在当前语言环境的字符集中表示的Unicode代码点的格式字符串也与平台相关。在某些平台上,此类代码点在输出中保持不变,而在其他平台上则strftime
可能会引发UnicodeError
或返回空字符串。
以下是C标准(1989版)所需的所有格式代码的列表,这些代码适用于具有标准C实现的所有平台。请注意,1999版C标准添加了其他格式代码。
工作年限的确切范围strftime()
也因平台而异。无论平台如何,1900年前都无法使用。
指示 |
含义 |
例 |
笔记 |
---|---|---|---|
%a |
工作日作为语言环境的缩写名称。 |
太阳,周一,......,周六(en_US); 所以,Mo,...,Sa(de_DE) |
(1) |
%A |
平日作为语言环境的全名。 |
星期日,星期一,......,星期六(en_US); Sonntag,Montag,......,Samstag(de_DE) |
(1) |
%w |
工作日为十进制数,其中0表示星期日,6表示星期六。 |
0,1,...,6 |
|
%d |
作为零填充十进制数的月中的某一天。 |
01,02,...,31 |
|
%b |
月份为区域设置的缩写名称。 |
Jan,Feb,...,Dec(en_US); Jan,Feb,...,Dez(de_DE) |
(1) |
%B |
月份为区域设置的全名。 |
1月,2月,...,12月(en_US); Januar,Februar,...,Dezember(de_DE) |
(1) |
%m |
月份为零填充十进制数。 |
01,02,...,12 |
|
%y |
没有世纪的年份为零填充十进制数。 |
00,01,...,99 |
|
%Y |
年份以世纪为十进制数。 |
1970年,1988年,2001年,2013年 |
|
%H |
小时(24小时制)作为零填充十进制数。 |
00,01,...,23 |
|
%I |
小时(12小时制)作为零填充十进制数。 |
01,02,...,12 |
|
%p |
Locale相当于AM或PM。 |
AM,PM(en_US); 上午,下午(de_DE) |
(1),(2) |
%M |
分钟为零填充十进制数。 |
00,01,...,59 |
|
%S |
其次是零填充十进制数。 |
00,01,...,59 |
(3) |
%f |
Microsecond为十进制数,左侧为零填充。 |
000000,000001,...,999999 |
(4) |
%z |
UTC偏移量,格式为+ HHMM或-HHMM(如果对象是天真的,则为空字符串)。 |
(空),+ 0000,-0400,+ 1030 |
(5) |
%Z |
时区名称(如果对象是天真的,则为空字符串)。 |
(空),UTC,EST,CST |
|
%j |
一年中的一天作为零填充十进制数。 |
001,002,...,366 |
|
%U |
作为零填充十进制数的一年中的周数(星期日作为一周的第一天)。在第一个星期日之前的新年中的所有日子都被认为是在第0周。 |
00,01,...,53 |
(6) |
%W |
一年中的周数(星期一作为一周的第一天)作为十进制数。在第一个星期一之前的新年中的所有日子被认为是在第0周。 |
00,01,...,53 |
(6) |
%c |
Locale的适当日期和时间表示。 |
1988年8月16日星期二21:30:00(en_US); Di 16 Aug 21:30:00 1988(de_DE) |
(1) |
%x |
Locale的适当日期表示。 |
08/16/88(无); 1988年8月16日(en_US); 19.08.1988(de_DE) |
(1) |
%X |
Locale的适当时间表示。 |
21:30:00(zh_); 21:30:00(de_DE) |
(1) |
%% |
文字'%'字符。 |
% |
笔记:
- 由于格式取决于当前区域设置,因此在对输出值进行假设时应小心。字段顺序会有所不同(例如,“月/日/年”与“日/月/年”),输出可能包含使用区域设置的默认编码编码的Unicode字符(例如,如果当前区域设置为
ja_JP
,则为默认值编码可以是中的任一项eucJP
,SJIS
或utf-8
;使用locale.getlocale()
以确定当前区域的编码)。 - 与
strptime()
方法一起使用时,%p
如果%I
指令用于解析小时,则该指令仅影响输出小时字段。 - 与
time
模块不同,该datetime
模块不支持闰秒。 -
%f
是C标准中格式字符集的扩展(但在datetime对象中单独实现,因此始终可用)。当与该strptime()
方法一起使用时,该%f
指令接受一到六位数字和右边的零焊盘。 2.6版中的新功能。 - 对于幼稚目的,
%z
和%Z
格式代码由空字符串替换。 对于一个知道的对象:%z
utcoffset()
转换为形式为+ HHMM或-HHMM的5个字符的字符串,其中HH是2位数字符串,给出UTC偏移小时数,MM是2位数字符串,给出UTC偏移分钟数。例如,如果utcoffset()
返回 ,则替换为字符串 。timedelta(hours=-3, minutes=-30)%z'-0330'
%Z
如果tzname()
返回None
,%Z
则替换为空字符串。否则%Z
由返回值替换,返回值必须是字符串。 - 当与使用
strptime()
方法,%U
并%W
指定了一周,一年中的一天,在计算仅使用。
- 解决NTPD漏洞,升级Ntpd版本
- 独家 | 手把手教TensorFlow(附代码)
- HBase Region自动切分细节
- eclipse搭建ssh后台
- 解决mysql漏洞 Oracle MySQL Server远程安全漏洞(CVE-2015-0411)
- im4java包处理图片
- centOS7 mini配置linux服务器(五) 安装和配置tomcat和mysql
- RedisPool操作Redis,工具类实例
- centOS7 mini配置linux服务器(四) 配置jdk
- 老司机教你“飙”EventBus3
- Android listView异步下载和convertView复用产生的错位问题
- 实用Android 屏幕适配方案分享
- java-FFmpeg(一) 实现视频的转码和截图功能
- websocket(二) websocket的简单实现,识别用户属性的群聊
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue插槽2.6.0+
- 聊聊claudb的transaction command
- Lombok 的作者,成功讨伐 IntelliJ IDEA!
- springboot2之优雅处理返回值
- 通过NVM管理Node.js多版本
- 探究 Android 签名机制和原理
- “有迹可循”的灰盒测试分析
- 想用 Gitee 做图床工具,失败了~~
- Nginx系列:配置跳转的常用方式
- Python骚操作:一行代码实现探索性数据分析
- 吊打 Tomcat ,Undertow 性能很炸!!
- 关于在android平台使用nanohttpd实现的http服务在WIFI环境下响应明显太慢的问题
- Vue.js组件库Element中的Select选择器、Cascader级联选择器、Switch开关和Slider滑块
- 年收200万+的Facebook前端工程师(E5)都要求些啥能力?
- 重学数据结构(二、栈)