I've got this date time string:
post["date"] = "2007-07-18 10:03:19"
I'd like to extract just "2007-07-18" as a date. I've seen some reference to strptime
but I'm not sure how to use it. How can I extract the date from this string?
The other two answers are fine, but if you actually want the date for something else, you can use the datetime
module:
from datetime import datetime
d = datetime.strptime('2007-07-18 10:03:19', '%Y-%m-%d %H:%M:%S')
day_string = d.strftime('%Y-%m-%d')
It might be overkill for now, but it'll come in useful. You can see all of the format specifiers here.
In your case, just use split:
>>> d1="2007-07-18 10:03:19"
>>> d1.split()[0]
'2007-07-18'
>>>
(The 1st part after splitting with whitespace)
If you insist on using strptime
, the format is "%Y-%m-%d %H:%M:%S"
:
>>> import time
>>> time.strptime(d1,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2007, tm_mon=7, tm_mday=18, tm_hour=10, tm_min=3, tm_sec=19, tm_wday=2, tm_yday=199, tm_isdst=-1)
>>> time.strftime("%Y-%m-%d", _)
'2007-07-18'
>>>
You can use https://pypi.python.org/pypi/python-dateutil which can support any datetime format e.g:
>>> from dateutil.parser import parse
>>> d1="2007-07-18 10:03:19"
>>> date_obj = parse(d1)
>>> date_obj
datetime.datetime(2007, 7, 18, 10, 3, 19)
>>> date_obj.strftime("%Y-%m-%d")
'2007-07-18'
>>> d2 = "18-07-2007 10:03:19"
>>> d = parse(d2)
>>> d
datetime.datetime(2007, 7, 18, 10, 3, 19)
>>> d.strftime("%Y-%m-%d")
'2007-07-18'
You can use the parsedatetime module.
>>> from parsedatetime.parsedatetime import Calendar
>>> c = Calendar()
>>> c.parse("2007-07-18 10:03:19")
((2008, 11, 19, 10, 3, 19, 2, 324, 0), 2)
import dateutil.parser
a = "2007-07-18 10:03:19"
d = dateutil.parser.parse(b).date()
Your Output will be like this **
datetime.date(2007, 07, 18)
**