Saya memiliki string tanggal dengan format 'Mon Feb 15 2010'. Saya ingin mengubah format menjadi '15 / 02/2010 '. Bagaimana saya bisa melakukan ini?
Saya memiliki string tanggal dengan format 'Mon Feb 15 2010'. Saya ingin mengubah format menjadi '15 / 02/2010 '. Bagaimana saya bisa melakukan ini?
Jawaban:
datetime
modul dapat membantu Anda dengan itu:
datetime.datetime.strptime(date_string, format1).strftime(format2)
Untuk contoh spesifik yang bisa Anda lakukan
>>> datetime.datetime.strptime('Mon Feb 15 2010', '%a %b %d %Y').strftime('%d/%m/%Y')
'15/02/2010'
>>>
date_string
sebagai string.
format1
harus berupa string untuk mengekspresikan format string tanggal masukan. format2
adalah format string target untuk dikeluarkan.
Anda dapat menginstal perpustakaan dateutil . Fungsinya parse
dapat mengetahui format string tanpa harus menentukan format seperti yang Anda lakukan datetime.strptime
.
from dateutil.parser import parse
dt = parse('Mon Feb 15 2010')
print(dt)
# datetime.datetime(2010, 2, 15, 0, 0)
print(dt.strftime('%d/%m/%Y'))
# 15/02/2010
python 3.x
kebutuhan untuk menginstalpython-dateutil
pip install python-dateutil
>>> from_date="Mon Feb 15 2010"
>>> import time
>>> conv=time.strptime(from_date,"%a %b %d %Y")
>>> time.strftime("%d/%m/%Y",conv)
'15/02/2010'
mengonversi string menjadi objek datetime
from datetime import datetime
s = "2016-03-26T09:25:55.000Z"
f = "%Y-%m-%dT%H:%M:%S.%fZ"
out = datetime.strptime(s, f)
print(out)
output:
2016-03-26 09:25:55
Karena pertanyaan ini sering muncul, berikut penjelasan sederhananya.
datetime
atau time
modul memiliki dua fungsi penting.
Dalam kedua kasus tersebut, kita membutuhkan string pemformatan. Ini adalah representasi yang memberi tahu bagaimana tanggal atau waktu diformat dalam string Anda.
Sekarang mari kita asumsikan kita memiliki objek tanggal.
>>> from datetime import datetime
>>> d = datetime(2010, 2, 15)
>>> d
datetime.datetime(2010, 2, 15, 0, 0)
Jika kita ingin membuat string dari tanggal ini dalam format 'Mon Feb 15 2010'
>>> s = d.strftime('%a %b %d %y')
>>> print s
Mon Feb 15 10
Mari kita asumsikan kita ingin mengubahnya s
lagi menjadi datetime
objek.
>>> new_date = datetime.strptime(s, '%a %b %d %y')
>>> print new_date
2010-02-15 00:00:00
Lihat Dokumen ini semua petunjuk pemformatan mengenai tanggal waktu.
Hanya untuk penyelesaian: saat mengurai tanggal menggunakan strptime()
dan tanggal berisi nama hari, bulan, dll, perhatikan bahwa Anda harus memperhitungkan lokal.
Ini juga disebutkan sebagai catatan kaki di dokumen .
Sebagai contoh:
import locale
print(locale.getlocale())
>> ('nl_BE', 'ISO8859-1')
from datetime import datetime
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y'
locale.setlocale(locale.LC_ALL, 'en_US')
datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d')
>> '2016-03-06'
@codeling dan @ user1767754: Dua baris berikut akan bekerja. Saya melihat tidak ada yang memposting solusi lengkap untuk contoh masalah yang ditanyakan. Semoga penjelasan ini cukup.
import datetime
x = datetime.datetime.strptime("Mon Feb 15 2010", "%a %b %d %Y").strftime("%d/%m/%Y")
print(x)
Keluaran:
15/02/2010
Anda juga dapat melakukannya dengan menggunakan panda:
import pandas as pd
pd.to_datetime('Mon Feb 15 2010', format='%a %b %d %Y').strftime('%d/%m/%Y')
Keluaran:
'15/02/2010'
Anda dapat menerapkan pendekatan pandas untuk tipe data yang berbeda sebagai:
import pandas as pd
import numpy as np
def reformat_date(date_string, old_format, new_format):
return pd.to_datetime(date_string, format=old_format, errors='ignore').strftime(new_format)
date_string = 'Mon Feb 15 2010'
date_list = ['Mon Feb 15 2010', 'Wed Feb 17 2010']
date_array = np.array(date_list)
date_series = pd.Series(date_list)
old_format = '%a %b %d %Y'
new_format = '%d/%m/%Y'
print(reformat_date(date_string, old_format, new_format))
print(reformat_date(date_list, old_format, new_format).values)
print(reformat_date(date_array, old_format, new_format).values)
print(date_series.apply(lambda x: reformat_date(x, old_format, new_format)).values)
Keluaran:
15/02/2010
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
['15/02/2010' '17/02/2010']
gunakan perpustakaan datetime http://docs.python.org/library/datetime.html cari 9.1.7. especiall strptime () strftime () Behavior¶ contoh http://pleac.sourceforge.net/pleac_python/datesandtimes.html