python3将字符串转为时间、日期(strptime() – Python3教程)

上一章Python教程请查看:python3将时间、日期转为字符串
在本文中,你将学习如何从字符串(通过示例)创建datetime对象。
strptime方法的作用是:根据给定的字符串创建一个datetime对象。
注意:你不能从每个字符串创建datetime对象,字符串需要采用某种格式。
例1:字符串转为datetime对象

from datetime import datetime date_string = "21 June, 2020" print("date_string =", date_string) print("type of date_string =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object =", date_object) print("type of date_object =", type(date_object))

strptime()是如何工作的?strptime()类方法有两个参数:
  • 字符串(转换为日期时间)
  • 格式的代码
基于所使用的字符串和格式代码,该方法返回其等效的datetime对象。
在上面的例子中:
python3将字符串转为时间、日期(strptime() – Python3教程)

文章图片
在这里,
  • %d -表示某月的某一天。例如:01、02、……31岁的
  • %B -月份的全名。例如:一月、二月等。
  • %Y -年,四位数。例如:2020年、2019年等。
例2:字符串到datetime对象
from datetime import datetime dt_string = "12/11/2020 09:15:32" # 考虑日期是dd/mm/yyyy格式 dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # 考虑日期是mm/dd/yyyy格式 dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)

格式代码列表下表显示了你可以使用的所有格式代码。
代码 解释 例子
%a 缩写工作日的名字。 Sun, Mon, …
%A 完整的工作日的名字。 Sunday, Monday, …
%w 一个十进制的工作日。 0, 1, … , 6
%d 一个月中的一天作为一个带零填充的小数。 01, 02, … , 31
%-d 以十进制数字表示的月份的天数。 1, 2, … , 30
%b 缩写月的名字。 Jan, Feb, … , Dec
%B 全月的名字。 January, February, …
%m 月作为一个零填充的小数。 01, 02, … , 12
%-m 一个十进制的月份。 1, 2, … , 12
%y 年没有世纪作为一个零填充的小数。 00, 01, … , 99
%-y 没有世纪作为十进制数的年份。 0, 1, … , 99
%Y 以世纪为十进制数的年份。 2013, 2019 etc.
%H 小时(24小时时钟)作为一个零填充的小数。 00, 01, … , 23
%-H 小时(24小时时钟)是一个十进制数。 0, 1, … , 23
%I 小时(12小时时钟)作为一个零填充的小数。 01, 02, … , 12
%-I 小时(12小时时钟)作为一个十进制数。 1, 2, … 12
%p 场所的上午或下午。 AM, PM
%M 分钟作为一个零填充的小数。 00, 01, … , 59
%-M 分钟是个小数。 0, 1, … , 59
%S 第二个是带零填充的小数。 00, 01, … , 59
%-S 第二个是小数。 0, 1, … , 59
%f 微秒作为一个十进制数,左边加零。 000000 – 999999
%z UTC偏移量的形式是+HHMM或-HHMM。  
%Z 时区名称。  
%j 一年中的一天,作为一个零填充的小数。 001, 002, … , 366
%-j 以十进制数表示的一年中的一天。 1, 2, … , 366
%U 全年的周数(星期日为一周的第一天)。新年第一个星期日之前的所有日子都被认为是在第0周。 00, 01, … , 53
%W 全年的周数(星期一为一周的第一天)。新年第一个星期一之前的所有日子都被认为是在第0周。 00, 01, … , 53
%c 区域设置的适当日期和时间表示。 Mon Sep 30 07:06:05 2013
%x 区域设置的适当日期表示。 09/30/13
%X 区域设置的适当时间表示。 07:06:05
%% 文字’ %’ 字符。 %
strptime ()中的ValueError【python3将字符串转为时间、日期(strptime() – Python3教程)】如果传递给strptime()的字符串(第一个参数)和格式代码(第二个参数)不匹配,你将得到ValueError。例如:
from datetime import datetime date_string = "12/11/2020" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)

如果你运行这个程序,你会得到一个错误。
ValueError: time data '12/11/2020' does not match format '%d %m %Y'

    推荐阅读