Python 基礎(chǔ)教程

Python 流程控制

Python 函數(shù)

Python 數(shù)據(jù)類型

Python 文件操作

Python 對(duì)象和類

Python 日期和時(shí)間

Python 高級(jí)知識(shí)

Python 參考手冊(cè)

Python strptime()

在本文中,您將學(xué)習(xí)如何從字符串創(chuàng)建datetime對(duì)象(在示例的幫助下)。

strptime()方法從給定的字符串創(chuàng)建datetime對(duì)象。

注意:您不能從每個(gè)字符串創(chuàng)建datetime對(duì)象。該字符串必須采用某種格式。

示例1:日期時(shí)間對(duì)象的字符串

from datetime import datetime

date_string = "21 June, 2018"

print("date_string =", date_string)
print("date_string數(shù)據(jù)類型 =", type(date_string))

date_object = datetime.strptime(date_string, "%d %B, %Y")

print("date_object =", date_object)
print("date_object數(shù)據(jù)類型  =", type(date_object))

運(yùn)行該程序時(shí),輸出為:

date_string = 21 June, 2018
date_string 數(shù)據(jù)類型 = <class 'str'>
date_object = 2018-06-21 00:00:00
date_object 數(shù)據(jù)類型  = <class 'datetime.datetime'>

strptime()如何工作?

strptime()類方法有兩個(gè)參數(shù):

  • 字符串(將轉(zhuǎn)換為日期時(shí)間)

  • 格式代碼

根據(jù)使用的字符串和格式代碼,該方法返回其等效datetime對(duì)象。

在上面的示例中:

strptime()如何在Python中工作?

這里,

  • %d-表示每月的一天。示例: 01,02,...,31

  • %B-月份的全名。例如:January, February等

  • %Y-年份以四位數(shù)表示。例如: 2018、2019等

示例2:日期時(shí)間對(duì)象的字符串

from datetime import datetime

dt_string = "12/11/2019 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)

運(yùn)行該程序時(shí),輸出為:

dt_object1 = 2019-11-12 09:15:32
dt_object2 = 2019-12-11 09:15:32

格式代碼清單

下表顯示了您可以使用的所有格式代碼。

指令含義實(shí)例
%a工作日名稱的縮寫。Sun, Mon, ...
%A工作日全名。Sunday, Monday, ...
%w工作日為十進(jìn)制數(shù)字。0,1,...,6
%d月份中的一天,以零填充的十進(jìn)制數(shù)表示。01,02,...,31
%-d以十進(jìn)制數(shù)表示的月份中的一天。1,2,...,30
%b月份的縮寫。Jan, Feb, ..., Dec
%B完整的月份名稱。January, February, ...
%m月份為零填充的十進(jìn)制數(shù)字。01、02,...,12
%-m以十進(jìn)制數(shù)表示的月份。1,2,...,12
%y無世紀(jì)的年份,為零填充的十進(jìn)制數(shù)字。00、01,...,99
%-y沒有世紀(jì)的年份作為十進(jìn)制數(shù)字。0,1,...,99
%Y以世紀(jì)作為十進(jìn)制數(shù)字的年份。2013、2019等
%H小時(shí)(24小時(shí)制),為補(bǔ)零的十進(jìn)制數(shù)字。00、01,...,23
%-H小時(shí)(24小時(shí)制)為十進(jìn)制數(shù)字。0,1,...,23
%I小時(shí)(12小時(shí)制),為零填充的十進(jìn)制數(shù)字。01、02,...,12
%-I小時(shí)(12小時(shí)制)為十進(jìn)制數(shù)字。1 2 2
%p語言環(huán)境的上午或下午。AM,PM
%M分鐘,為零填充的十進(jìn)制數(shù)字。00、01,...,59
%-M以十進(jìn)制數(shù)字表示。0,1,...,59
%S第二個(gè)為零填充的十進(jìn)制數(shù)。00、01,...,59
%-S第二個(gè)十進(jìn)制數(shù)字。0,1,...,59
%f微秒,十進(jìn)制數(shù),在左側(cè)補(bǔ)零。000000-999999
%zUTC偏移量,格式為+ HHMM或-HHMM。 
%Z時(shí)區(qū)名稱。 
%j一年中的一天,以零填充的十進(jìn)制數(shù)字表示。001,002,...,366
%-j一年中的天,以十進(jìn)制數(shù)字表示。1,2,...,366
%U一年中的第幾周(星期日為一周的第一天)。在第一個(gè)星期日之前的新的一年中的所有天都被視為在第0周。00、01,...,53
%W一年中的第幾周(星期一為一周中的第一天)。第一個(gè)星期一之前的新的一年中的所有天均視為在第0周。00、01,...,53
%c語言環(huán)境的適當(dāng)日期和時(shí)間表示。Mon Sep 30 07:06:05 2013
%x語言環(huán)境的適當(dāng)日期表示形式。13/9/30
%X語言環(huán)境的適當(dāng)時(shí)間表示形式。07:06:05
%%文字“%”字符。

strptime()中的ValueError

如果傳遞給的字符串(第一個(gè)參數(shù))和格式代碼(第二個(gè)參數(shù))strptime()不匹配,則會(huì)得到ValueError。例如:

from datetime import datetime

date_string = "12/11/2018"
date_object = datetime.strptime(date_string, "%d %m %Y")

print("date_object =", date_object)

如果您運(yùn)行此程序,則會(huì)出現(xiàn)錯(cuò)誤。

ValueError: time data '12/11/2018' does not match format '%d %m %Y'

推薦閱讀: Python strftime()

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清