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_stringsebagai string.
format1harus berupa string untuk mengekspresikan format string tanggal masukan. format2adalah format string target untuk dikeluarkan.
Anda dapat menginstal perpustakaan dateutil . Fungsinya parsedapat 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.xkebutuhan 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.
datetimeatau timemodul 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 slagi menjadi datetimeobjek.
>>> 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