当tzinfo存在时从python字符串获取datetime

时间:2012-09-22 16:37:47

标签: python google-app-engine datetime

I have found answers to question like this one helpful but not complete for my problem. 我有一个用户自动生成日期的表单。我想将其存储为日期时间。

我不需要秒后的任何信息,但我找不到datetime.datetime.strptime代码来翻译剩余的东西。因此,我要么想要一个适用于谷歌应用引擎上的python2.7的strptime代码,要么是一个字符串编辑技巧,用于删除不需要的额外信息。

date-from-user ='2012-09-22 07:36:36.333373-05:00'

2 个答案:

答案 0 :(得分:1)

Python Docs将是一个很好的起点。 strptime()将是你最好的选择。

import datetime

datefromuser = '2012-09-22 07:36:36.333373-05:00'
datetime.datetime.strptime(datefromuser.split(".")[0], "%Y-%m-%d %H:%M:%S")

2012-09-22 07:36:36

http://docs.python.org/library/datetime.html#strftime-and-strptime-behavior

答案 1 :(得分:1)

您可以将字符串切片为仅选择前19个字符:

>>> datefromuser='2012-09-22 07:36:36.333373-05:00'
>>> datefromuser[:19]
'2012-09-22 07:36:36'

这让你解析日期而不必费心去看微秒和时区。

请注意,您可能也想要解析时区。您可以使用iso8601 module来处理整个格式,而无需切片:

>>> import iso8601
>>> iso8601.parse_date(datefromuser)
datetime.datetime(2012, 9, 22, 7, 36, 36, 333373, tzinfo=<FixedOffset '-05:00'>)

iso8601模块是用纯python编写的,在Google App Engine上没有问题。