Python strptime () - rentetan ke objek datetime

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 datetimeobjek 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 datetimeobjek 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 ()

Artikel menarik...