Google app engine datastore datetime to date in Py

2019-06-27 17:01发布

I've always hated the headache of managine dates, times, datetimes, and the various formats and conversions that are needed with them. I'm taking an online course on using the google app engine and it says to use the datetime property, which is returning a date in the format:

2012-06-25 01:17:40.273000

I tried

datetime.strptime('2012-06-25 01:17:40.273000','%y-%m-%d %H:%M:%S')

but it didn't work..

I just want to extract the 2012-06-25 part without using a hacky regex or string slicing solution.

How do I parse this and convert it to the proper format?

2条回答
劳资没心,怎么记你
2楼-- · 2019-06-27 17:33

If you are using a datetime property then the object you get back is a datetime instance not a string.

On the console

>>> from datetime import datetime
>>> x = datetime.now()
>>> print x
2012-06-25 12:03:15.835467
>>> x.date()
datetime.date(2012, 6, 25)
>>> 
>>> print x.date()
2012-06-25
>>> 

See the print statement. It does an implicit conversion to string. If your outputting the datetime property value in a template, this is probably what is happening.

So in your code you should just use .date() method on the datetime object.

查看更多
再贱就再见
3楼-- · 2019-06-27 17:47

Finally found it (shortly after asking the question, but I've been trying for the past hour)

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f')

What I wanted:

datetime.strptime('2012-06-25 01:17:40.273000','%Y-%m-%d %H:%M:%S.%f').strftime('%m-%d-%Y')
查看更多
登录 后发表回答