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对象。

在上面的例子中:

strptime()在Python中是如何工作的

在这里,

  • %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

如果传递给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'

以上是 python3将字符串转为时间、日期:strptime() – Python3教程 的全部内容, 来源链接: utcz.com/p/203685.html

回到顶部