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 datetime
objek 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 datetime
objek 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 ()