如何格式化" 2014年11月4日12:00:00"进入2014-11-4 12:00:00在python中

时间:2017-02-15 06:13:09

标签: python datetime

我有一个列值实际上是一个字符串日期格式" 2014年11月4日12:00:00"我想把它作为时间戳值,如2014-11-4 12:00:00。我怎么能这样做,我试过波纹管代码

from datetime import datetime
datetext="Nov 1 2004 12:00:00"
datev= datetime.strptime(datetext,"%YYYY-mm-dd")
print datev

并收到此错误

ValueError: time data 'Nov 1 2004 12:00:00' does not match format '%YYYY-mm-dd'
似乎我在这里遗漏了一些东西。任何人都可以指导我

2 个答案:

答案 0 :(得分:0)

将正确的格式设置为strptime以反映您的输入:

datev = datetime.strptime(datetext,"%b %d %Y %H:%M:%S")

有关格式化指令,请参阅here。 (Python {3 Here。)

如果print您创建的后续datev datetime个对象,则str对象的默认datetime格式将符合您的要求(2014- 11-4 12:00:00)。如果要修改打印输出的外观,请使用strftime,如Sardorbek的答案所示,再次使用您想要的格式化指令。

答案 1 :(得分:0)

首先,您使用strptime错误https://docs.python.org/3.6/library/datetime.html#datetime.datetime.strptime

使用datetextstrptime转换为日期时间后,您需要使用strftime https://docs.python.org/3.6/library/datetime.html#datetime.datetime.strftime

将其转换回字符串

使用@FeebleOldMan部分回答

from datetime import datetime
datetext="Nov 1 2004 12:00:00"
datev = datetime.strptime(datetext,"%b %d %Y %H:%M:%S")
new_datetext = datev.strftime('%Y-%m-%d %H:%M:%S')
print(new_datetext)