Python日期转换?

时间:2016-12-20 18:08:53

标签: python python-2.7 datetime

我目前正在尝试将文件格式转换为稍微不同的样式,以便更轻松地导入程序,但是我无法理解如何在格式之间转换日期时间字符串。原来我有以下几点:

2016-12-15 17:26:45

但是,日期时间所需的格式为:

Thu Dec 15 17:19:03 2016

有没有人知道是否有一种简单的方法可以在这些之间进行转换?这些值总是在相同的位置和格式,所以它不需要太动态,所以除了识别月份的某一天之外(如果可以完成的话)?

更新 - 转换已经过了1个日期而不是另一个奇怪:/获取两个日期的代码如下:

startDate=startDate.replace("Started : ","")
startDate=startDate.replace(" (ISO format YYYY-MM-DD HH:MM:SS)","")
startDate=startDate.strip()
startDt = datetime.strptime(startDate, '%Y-%m-%d  %H:%M:%S')
startDt=startDt.strftime('%a %b %d %H:%M:%S %Y ')
print (startDt)

此部分按照预期工作并输出所需格式:

“2016-12-15 17:26:45

Thu Dec 15 17:26:45 2016“

结束日期部分有点“火腿吝啬”,可以这么说,我确信有更好的方法来执行re.sub搜索只是为了在括号中做任何事情,但我稍后会编辑它。

endDate=endDate.replace("Ended               : ","")
endDate=endDate.strip()
endDate = re.sub("\(.*?\)", "", endDate)
endDate.strip()
endDt = datetime.strptime(endDate, '%Y-%m-%d  %H:%M:%S')
endDt=endDt.strftime('%a %b %d %H:%M:%S %Y ')
print (endDt)

尽管输出的格式相同,但这部分仍然是

“2016-12-15 17:26:45

2016-12-15 21:22:11“

产生以下错误:

endDt = datetime.strptime(endDate, '%Y-%m-%d  %H:%M:%S')    
  File "C:\Python27\lib\_strptime.py", line 335, in _strptime    
    data_string[found.end():])    
ValueError: unconverted data remains:

3 个答案:

答案 0 :(得分:3)

os.system("Command here")

答案 1 :(得分:3)

使用Datetime模块这是一项非常简单的任务。 正如已经指出的那样,检查文档将为您提供大量有用的信息,从指令开始提供给strptimestrftime(分别是解析和格式化时间)函数需要在这里。

您案例的一个工作示例是:

from datetime import datetime

myDateString = '2016-12-15 17:26:45'
myDateObj = datetime.strptime(myDateString, '%Y-%m-%d %H:%M:%S')
myDateFormat = myDateObj.strftime('%a %b %d %H:%M:%S %Y')

查看this section of the docs以更好地了解格式化占位符。

答案 2 :(得分:1)

您可以使用datetime模块:

from datetime import datetime

string = '2016-12-15 17:26:45'
date = datetime.strptime(string, '%Y-%m-%d %H:%M:%S')
date2 = date.strftime("%a %b %d %H:%M:%S %Z %Y")
print(date2)

输出:

  

Thu Dec 15 17:26:45 2016