- 零基础学Python(第2版)
- 黄传禄 张克强 赵越
- 760字
- 2025-03-22 17:27:09
6.1.8 字符串与日期的转换
在开发中,经常把日期类型转换为字符串类型使用。字符串与日期的转换是日常工作中会频繁遇到的问题。Java提供了SimpleDateFormat类实现日期到字符串的转换。Python提供了time模块处理日期和时间。函数strftime()可以实现从时间到字符串的转换。strftime()的声明如下所示。
strftime(format[, tuple]) -> string
【代码说明】
·参数format表示格式化日期的特殊字符。例如,“%Y-%m-%d”相当于Java中的“yyyy-MM-dd”。
·参数tuple表示需要转换的时间,用元组存储。元组中的元素分别表示年、月、日、时、分、秒。
·本函数返回一个表示时间的字符串。
参数format格式化日期的常用标记如表6-3所示。
表6-3 格式化日期的常用标记

字符串到时间的转换需要使用time模块和datetime类进行两次,转换过程分为如下3个步骤。
1)调用函数strptime()把字符串转换为一个元组,进行第1次转换。strptime()的声明如下所示。
strptime(string, format) -> struct_time
【代码说明】
·参数string表示需要转换的字符串。
·参数format表示日期时间的输出格式。
·函数返回一个存放时间的元组。
2)把表示时间的元组赋值给表示年、月、日的3个变量。
3)把表示年、月、日的3个变量传递给函数datetime(),进行第2次转换。datetime类的datetime()函数如下所示。
datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
【代码说明】
·参数year、month、day分别表示年、月、日,这3个参数必不可少。
·函数返回1个datetime类型的变量。
下面这段代码演示了时间到字符串、字符串到时间的转换过程。
01 import time,datetime # 导入time、datetime模块 02 03 # 时间到字符串的转换 04 print (time.strftime("%Y-%m-%d %X", time.localtime())) 05 # 字符串到时间的转换 06 t = time.strptime("2019-10-08", "%Y-%m-%d") 07 y, m, d = t[0:3] 08 print (datetime.datetime(y, m, d))
【代码说明】
·第4行代码中,函数localtime()返回当前的时间(此处的时间为作者运行本代码时的时间),strftime()把当前的时间格式转化为字符串类型。输出结果:
2019-07-24 17:52:11
·第6行代码,把字符串“2019-10-08”转换为一个元组返回。
·第7行代码,把元组中前3个表示年、月、日的元素赋值给3个变量。
·第8行代码,调用datetime()返回时间类型。输出结果:
2019-10-08 00:00:00
注意 格式化日期的特殊标记是区分大小写的,%Y与%y不相同。