我想将日期转换为MySQL的DateTime对象。
我的字符串格式为:Mon Aug 27 04:47:45 +0000 2018
预期输出:'YYYY-M-D H:mm:ss'
答案 0 :(得分:1)
from datetime import datetime
t = datetime.strptime('Mon Aug 27 04:47:45 +0000 2008', '%a %b %d %H:%M:%S % z %Y')
t.strftime('%Y-%m-%d %H:%M:%S')
请参阅第8.1.8节 here
答案 1 :(得分:0)
from datetime import datetime
date_as_dt_object = datetime.strptime(dt, '%a %b %d %H:%M:%S %z %Y')
您可以在原始查询或ORM中使用date_as_dt_object。如果用于原始查询中,则将其作为字符串传递,例如:
query = "select * from table where date >" + str(date_as_dt_object)
在此列表中查看Python的strftime指令。 http://strftime.org/
答案 2 :(得分:0)
如果您使用的是python 3,此解决方案将有效-
from datetime import datetime
x = 'Mon Aug 27 04:47:45 +0000 2018'
x = datetime.strftime(datetime.strptime(x, '%a %b %d %I:%M:%S %z %Y'), '%Y-%m-%d %H:%M:%S')
# OP '2018-08-27 04:47:45'
但是对于python 2,您可能会得到一个ValueError: 'z' is a bad directive...
。在这种情况下,您将不得不使用pytz或dateutil之类的东西。查找所有这些转换所需的表可以找到here
编辑:如果将datetime字符串转换为datetime对象,则无法使用Expected Output: 'YYYY-M-D H:mm:ss'
。 Datetime对象具有其自己的格式。上面为您提供了string
所需的格式