Dalam artikel ini, anda akan belajar membuat objek datetime dari rentetan (dengan bantuan contoh).
The strptime()
kaedah mencipta objek datetime dari rentetan yang diberikan.
Catatan: Anda tidak dapat membuat datetime
objek dari setiap rentetan. Rentetan perlu dalam format tertentu.
Contoh 1: rentetan ke objek datetime
from datetime import datetime date_string = "21 June, 2018" 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))
Semasa anda menjalankan program, outputnya adalah:
date_string = 21 Jun, 2018 jenis tarikh_string = tarikh_objek = 2018-06-21 00:00:00 jenis tarikh_objek =
Bagaimana strptime () berfungsi?
The strptime()
kaedah kelas mengambil masa dua hujah:
- rentetan (yang akan ditukar menjadi masa masa)
- kod format
Berdasarkan rentetan dan kod format yang digunakan, kaedah mengembalikan datetime
objek yang setara .
Dalam contoh di atas:
Di sini,
%d
- Merupakan hari dalam sebulan. Contoh: 01, 02,…, 31%B
- Nama bulan penuh. Contoh: Januari, Februari dll.%Y
- Tahun dalam empat digit. Contoh: 2018, 2019 dll.
Contoh 2: rentetan ke objek datetime
from datetime import datetime dt_string = "12/11/2018 09:15:32" # Considering date is in dd/mm/yyyy format dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S") print("dt_object1 =", dt_object1) # Considering date is in mm/dd/yyyy format dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S") print("dt_object2 =", dt_object2)
Semasa anda menjalankan program, outputnya adalah:
dt_object1 = 2018-11-12 09:15:32 dt_object2 = 2018-12-11 09:15:32
Format Senarai Kod
Jadual di bawah menunjukkan semua kod format yang boleh anda gunakan.
Arahan | Makna | Contohnya |
%a | Singkatan nama hari minggu. | Matahari, Isnin,… |
%A | Nama hari minggu penuh. | Ahad Isnin,… |
%w | Hari minggu sebagai nombor perpuluhan. | 0, 1,…, 6 |
%d | Hari bulan sebagai perpuluhan sifar. | 01, 02,…, 31 |
%-d | Hari dalam bulan sebagai nombor perpuluhan. | 1, 2,…, 30 |
%b | Nama singkatan bulan. | Jan, Feb,…, Dis |
%B | Nama bulan penuh. | Januari Febuari,… |
%m | Bulan sebagai nombor perpuluhan berlapis sifar. | 01, 02,…, 12 |
%-m | Bulan sebagai nombor perpuluhan. | 1, 2,…, 12 |
%y | Tahun tanpa abad sebagai nombor perpuluhan berlapis sifar. | 00, 01,…, 99 |
%-y | Tahun tanpa abad sebagai nombor perpuluhan. | 0, 1,…, 99 |
%Y | Tahun dengan abad sebagai nombor perpuluhan. | 2013, 2019 dll. |
%H | Jam (jam 24 jam) sebagai nombor perpuluhan empuk sifar. | 00, 01,…, 23 |
%-H | Jam (jam 24 jam) sebagai nombor perpuluhan. | 0, 1,…, 23 |
%I | Jam (jam 12 jam) sebagai nombor perpuluhan berlapis sifar. | 01, 02,…, 12 |
%-I | Jam (jam 12 jam) sebagai nombor perpuluhan. | 1, 2,… 12 |
%p | AM atau PM tempatan. | PAGI PETANG |
%M | Minit sebagai nombor perpuluhan berlapis sifar. | 00, 01,…, 59 |
%-M | Minit sebagai nombor perpuluhan. | 0, 1,…, 59 |
%S | Kedua sebagai nombor perpuluhan berlapis sifar. | 00, 01,…, 59 |
%-S | Kedua sebagai nombor perpuluhan. | 0, 1,…, 59 |
%f | Mikrod sebagai nombor perpuluhan, empuk sifar di sebelah kiri. | 000000 - 999999 |
%z | UTC mengimbangi dalam bentuk + HHMM atau -HHMM. | |
%Z | Nama zon waktu. | |
%j | Hari dalam setahun sebagai nombor perpuluhan berlapis sifar. | 001, 002,…, 366 |
%-j | Hari dalam setahun sebagai nombor perpuluhan. | 1, 2,…, 366 |
%U | Bilangan minggu dalam setahun (Ahad sebagai hari pertama dalam seminggu). Semua hari dalam tahun baru sebelum hari Ahad pertama dianggap sebagai minggu ke-0. | 00, 01,…, 53 |
%W | Bilangan minggu dalam setahun (Isnin sebagai hari pertama dalam seminggu). Semua hari dalam tahun baru sebelum Isnin pertama dianggap dalam minggu 0. | 00, 01,…, 53 |
%c | Perwakilan tarikh dan masa tempatan yang sesuai. | Isnin 30 Sep 07:06:05 2013 |
%x | Perwakilan tarikh yang sesuai di lokasi. | 09/30/13 |
%X | Perwakilan masa yang sesuai di tempat. | 07:06:05 |
%% | Watak '%' harfiah. | % |
NilaiError dalam strptime ()
Sekiranya rentetan (argumen pertama) dan kod format (argumen kedua) diteruskan ke strptime()
tidak sesuai, anda akan mendapat ValueError
. Sebagai contoh:
from datetime import datetime date_string = "12/11/2018" date_object = datetime.strptime(date_string, "%d %m %Y") print("date_object =", date_object)
Sekiranya anda menjalankan program ini, anda akan mendapat ralat.
ValueError: data masa '12 / 11/2018 'tidak sepadan dengan format'% d% m% Y '
Bacaan yang Disyorkan: Python strftime ()