我试图在Django中使用this eventCalendar,它以这种格式保存和显示日期:
2012-02-27T13:15:00.000+10:00
但是当我在数据库中保存事件时,它们会以这种格式保存:
Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)
因此,由于此格式,数据库中的事件不会显示在日历上。我该如何转换这种格式? 我试过这样的事情:
datetime.strptime(mydatetime, "%Y-%m-%dT%H:%M:%S+0000")
但是我反复得到这样的错误:
'module' object has no attribute 'strptime'
编辑:日期是字符串格式
答案 0 :(得分:5)
strptime
用于将字符串解析为日期时间对象。格式字符串指示如何解析字符串,不您希望日期时间在以后打印为字符串时采用的格式。首先,您需要使格式字符串与输入字符串的日期格式匹配。
从strptime
获得日期时间后,您可以将strftime
与当前格式字符串一起使用,以将其显示在所需的显示中。
尽管如此,看来你的进口存在问题。错误似乎表明你已经完成了:
import datetime
datetime.strptime(...)
这是不正确的。 strptime
和strftime
方法是关datetime.datetime
的方法,因此您需要修改导入,如:
from datetime import datetime
或者,将您的号码修改为strptime
,如:
datetime.datetime.strptime(...)
<强>更新强>
你开始使用像Mon Feb 27 2012 13:15:00 GMT+0330 (Iraq Standard Time)
这样的字符串。 Python非常棒,但它不是无所不知的;如果你想将其转换为datetime
,你必须告诉它如何。这是您传递给strptime
的格式字符串的目的。您需要创建一个格式字符串,表示您在数据库中表示的当前字符串日期和时间(练习留给读者)。反过来思考,你想要实际代表一个datetime
,你会怎么做呢。
这会给你一个datetime
。从那里,您现在可以将datetime
格式化为strftime
的字符串,并传递您想要的实际格式。
所以过程是:
strptime
的参数来获取datetime
strftime
的参数,将datetime
从第2步转换为您想要的字符串。