Python strptime () - string ke objek datetime

Pada artikel ini, Anda akan belajar membuat objek datetime dari string (dengan bantuan contoh).

The strptime()Metode menciptakan objek datetime dari string yang diberikan.

Catatan: Anda tidak dapat membuat datetimeobjek dari setiap string. String harus dalam format tertentu.

Contoh 1: string 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)) 

Saat Anda menjalankan program, hasilnya adalah:

 date_string = 21 Juni 2018 jenis date_string = date_object = 2018-06-21 00:00:00 jenis date_object = 

Bagaimana strptime () bekerja?

The strptime()metode kelas membutuhkan dua argumen:

  • string (yang diubah menjadi datetime)
  • kode format

Berdasarkan string dan kode format yang digunakan, metode ini mengembalikan datetimeobjek yang setara .

Dalam contoh di atas:

Sini,

  • %d- Merupakan hari dalam sebulan. Contoh: 01, 02,…, 31
  • %B- Nama bulan secara lengkap. Contoh: Januari, Februari dll.
  • %Y- Tahun dalam empat digit. Contoh: 2018, 2019 dll.

Contoh 2: string 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) 

Saat Anda menjalankan program, hasilnya adalah:

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

Format Daftar Kode

Tabel di bawah ini menunjukkan semua kode format yang dapat Anda gunakan.

Pengarahan Berarti Contoh
%a Nama hari kerja yang disingkat. Min, Sen,…
%A Nama hari kerja lengkap. Minggu Senin,…
%w Hari kerja sebagai angka desimal. 0, 1,…, 6
%d Hari dalam sebulan sebagai desimal dengan bantalan nol. 01, 02,…, 31
%-d Hari dalam sebulan sebagai angka desimal. 1, 2,…, 30
%b Nama bulan yang disingkat. Jan, Feb,…, Des
%B Nama bulan penuh. Januari Februari,…
%m Bulan sebagai angka desimal yang diisi nol. 01, 02,…, 12
%-m Bulan sebagai angka desimal. 1, 2,…, 12
%y Tahun tanpa abad sebagai angka desimal yang diisi nol. 00, 01,…, 99
%-y Tahun tanpa abad sebagai angka desimal. 0, 1,…, 99
%Y Tahun dengan abad sebagai angka desimal. 2013, 2019 dll.
%H Jam (format 24 jam) sebagai angka desimal dengan bantalan nol. 00, 01,…, 23
%-H Jam (format 24 jam) sebagai angka desimal. 0, 1,…, 23
%I Jam (format 12 jam) sebagai angka desimal dengan bantalan nol. 01, 02,…, 12
%-I Jam (format 12 jam) sebagai angka desimal. 1, 2,… 12
%p Lokal AM atau PM. AM, PM
%M Menit sebagai angka desimal dengan bantalan nol. 00, 01,…, 59
%-M Menit sebagai angka desimal. 0, 1,…, 59
%S Kedua sebagai angka desimal dengan bantalan nol. 00, 01,…, 59
%-S Detik sebagai angka desimal. 0, 1,…, 59
%f Mikrodetik sebagai angka desimal, dengan bantalan nol di sebelah kiri. 000000 - 999999
%z UTC offset dalam bentuk + HHMM atau -HHMM.
%Z Nama zona waktu.
%j Hari dalam setahun sebagai angka desimal dengan bantalan nol. 001, 002,…, 366
%-j Hari dalam setahun sebagai angka desimal. 1, 2,…, 366
%U Nomor minggu dalam setahun (Minggu sebagai hari pertama dalam seminggu). Semua hari di tahun baru sebelum Minggu pertama dianggap dalam minggu 0. 00, 01,…, 53
%W Nomor minggu dalam setahun (Senin sebagai hari pertama dalam seminggu). Semua hari di tahun baru sebelum Senin pertama dianggap dalam minggu 0. 00, 01,…, 53
%c Representasi tanggal dan waktu yang sesuai untuk lokal. Sen 30 Sep, 07:06:05 2013
%x Representasi tanggal yang tepat untuk lokal. 09/30/13
%X Representasi waktu yang tepat untuk lokal. 07:06:05
%% Karakter '%' literal. %

ValueError di strptime ()

Jika string (argumen pertama) dan kode format (argumen kedua) diteruskan ke strptime()tidak cocok, Anda akan mendapatkan 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) 

Jika Anda menjalankan program ini, Anda akan mendapatkan error.

 ValueError: data waktu '12 / 11/2018 'tidak sesuai dengan format'% d% m% Y ' 

Bacaan yang Direkomendasikan: Python strftime ()

Artikel yang menarik...