English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本文中,您将学习如何从字符串创建datetime对象(在示例的帮助下)。
strptime()方法从给定的字符串创建datetime对象。
注意:您不能从每个字符串创建datetime对象。该字符串必须采用某种格式。
from datetime import datetime date_string = "21 June, 2018" print("date_string =", date_string) print("date_string数据类型 =", type(date_string)) date_object = datetime.strptime(date_string, "%d %B, %Y") print("date_object = ", date_object) print("date_object数据类型 =", type(date_object))
Quando si esegue il programma, l'output è:
date_string = 21 June, 2018 date_string 数据类型 = <class 'str'> date_object = 2018-06-21 00:00:00 date_object 数据类型 = <class 'datetime.datetime'>
strptime()类方法有两个参数:
字符串(将转换为日期时间)
格式代码
根据使用的字符串和格式代码,该方法返回其等效datetime对象。
Nell'esempio sopra:
Ecco,
%d-表示每月的一天。Esempio: 01,02,...,31
%B-月份的全名。Ad esempio:Gennaio, Febbraio等
%Y-年以四位数表示。Ad esempio: 2018、2019等
from datetime import datetime dt_string = "12/11/2019 09:15:32" # La data è nel formato dd/mm/yyyy dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # La data è nel formato mm/dd/yyyy dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)
Quando si esegue il programma, l'output è:
dt_object1 = 2019-11-12 09:15:32 dt_object2 = 2019-12-11 09:15:32
La tabella seguente mostra tutti i codici di formato che puoi utilizzare.
Comando | Significato | Esempio |
%a | Abbreviazione del nome del giorno lavorativo. | Dom, Lun,... |
%A | Nome completo del giorno lavorativo. | Domenica, Lunedì,... |
%w | Giorno lavorativo come numero decimale. | 0,1,...,6 |
%d | Giorno del mese, rappresentato come numero decimale con riempimento zero. | 01,02,...,31 |
-%d | Giorno del mese come numero decimale. | 1,2,...,30 |
%b | Abbreviazione del mese. | Gen, Feb,...,Dic |
%B | Nome completo del mese. | Gennaio, Febbraio,... |
%m | Mese come numero decimale con riempimento zero. | 01,02,...,12 |
-%m | Mese come numero decimale. | 1,2,...,12 |
%y | Anno senza secolo, numero decimale con riempimento zero. | 00,01,...,99 |
-%y | Anno senza secolo come numero decimale. | 0,1,...,99 |
%Y | Anno come numero decimale del secolo. | 2013,2019 ecc. |
%H | Ora (24 ore), numero decimale con riempimento zero. | 00,01,...,23 |
-%H | Ora (24 ore) come numero decimale. | 0,1,...,23 |
%I | Ora (12 ore), numero decimale con riempimento zero. | 01,02,...,12 |
-%I | Ora (12 ore) come numero decimale. | 1 2 2 |
%p | Ambiente linguistico di mattina o pomeriggio. | AM,PM |
%M | Minuto, numero decimale con riempimento zero. | 00, 01, ..., 59 |
%-M | Rappresentato come numero decimale. | 0, 1, ..., 59 |
%S | Secondo numero decimale con zeri iniziali. | 00, 01, ..., 59 |
%-S | Secondo numero decimale. | 0, 1, ..., 59 |
%f | Microsecondi, numero decimale, riempiti a sinistra con zero. | 000000-999999 |
%z | Fuso orario UTC, formato + HHMM o - HHMM. | |
%Z | Nome della fascia oraria. | |
%j | Giorno dell'anno, rappresentato come numero decimale con zeri iniziali. | 001, 002, ..., 366 |
%-j | Giorno dell'anno, rappresentato come numero decimale. | 1, 2, ..., 366 |
%U | Settimana dell'anno (domenica è il primo giorno della settimana). Tutti i giorni del nuovo anno prima del primo domenica sono considerati nella settimana 0. | 00, 01, ..., 53 |
%W | Settimana dell'anno (lunedì è il primo giorno della settimana). Tutti i giorni del nuovo anno prima del primo lunedì sono considerati nella settimana 0. | 00, 01, ..., 53 |
%c | Forma appropriata della data e dell'ora di riferimento del linguaggio. | Mon Sep 30 07:06:05 2013 |
%x | Forma appropriata della data di riferimento del linguaggio. | 13/9/30 |
%X | Forma appropriata del tempo di riferimento del linguaggio. | 07:06:05 |
%% | Il carattere di testo "%". | % |
Se la stringa passata (primo parametro) e il codice di formato (secondo parametro) di strptime() non corrispondono, verrà generato un ValueError. Ad esempio:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object = ", date_object)
Se esegui questo programma, verrà generato un errore.
ValueError: i dati di tempo '12/11/2018' non corrispondono al formato '%d %m %Y'
Leggi consigliati: strftime() en Python