在python中将字符串转换为MySQL的DateTime

时间:2018-08-27 06:52:30

标签: python mysql datetime

我想将日期转换为MySQL的DateTime对象。

我的字符串格式为:Mon Aug 27 04:47:45 +0000 2018 预期输出:'YYYY-M-D H:mm:ss'

3 个答案:

答案 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...。在这种情况下,您将不得不使用pytzdateutil之类的东西。查找所有这些转换所需的表可以找到here

编辑:如果将datetime字符串转换为datetime对象,则无法使用Expected Output: 'YYYY-M-D H:mm:ss'。 Datetime对象具有其自己的格式。上面为您提供了string所需的格式