Jawaban:
Pertanyaan terkait langsung:
Bagaimana jika Anda memilikinya
datetime.datetime.strptime("2015-02-24T13:00:00-08:00", "%Y-%B-%dT%H:%M:%S-%H:%M").date()
dan Anda mendapatkan:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/_strptime.py", line 308, in _strptime
format_regex = _TimeRE_cache.compile(format)
File "/usr/local/lib/python2.7/_strptime.py", line 265, in compile
return re_compile(self.pattern(format), IGNORECASE)
File "/usr/local/lib/python2.7/re.py", line 194, in compile
return _compile(pattern, flags)
File "/usr/local/lib/python2.7/re.py", line 251, in _compile
raise error, v # invalid expression
sre_constants.error: redefinition of group name 'H' as group 7; was group 4
dan Anda mencoba:
<-24T13:00:00-08:00", "%Y-%B-%dT%HH:%MM:%SS-%HH:%MM").date()
tetapi Anda masih mendapatkan traceback di atas.
Menjawab:
>>> from dateutil.parser import parse
>>> from datetime import datetime
>>> parse("2015-02-24T13:00:00-08:00")
datetime.datetime(2015, 2, 24, 13, 0, tzinfo=tzoffset(None, -28800))
Jika Anda malas dan tidak ingin bertarung dengan string literal, Anda bisa menggunakan parser
modul.
from dateutil import parser
dt = parser.parse("Jun 1 2005 1:33PM")
print(dt.year, dt.month, dt.day,dt.hour, dt.minute, dt.second)
>2005 6 1 13 33 0
Hanya catatan tambahan , karena kami mencoba mencocokkan any
representasi string, ini 10x lebih lambat daripadastrptime
Monday, June 03, 2019
Anda memiliki string tanggal seperti ini, "24052010" dan Anda ingin objek tanggal untuk ini,
from datetime import datetime
cus_date = datetime.strptime("24052010", "%d%m%Y").date()
cus_date ini akan memberi Anda objek tanggal.
Anda dapat mengambil string tanggal dari objek tanggal Anda menggunakan ini,
cus_date.strftime("%d%m%Y")
1900
. Masalah terjadi ketika menguraikan tanggal Feb seperti '2902'. Saya mendapatkan kesalahan iniValueError: day is out of range for month
. Tidak yakin bagaimana saya bisa mengatur tahun default saat parsing.