我目前正在尝试将文件格式转换为稍微不同的样式,以便更轻松地导入程序,但是我无法理解如何在格式之间转换日期时间字符串。原来我有以下几点:
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:
答案 0 :(得分:3)
os.system("Command here")
答案 1 :(得分:3)
使用Datetime模块这是一项非常简单的任务。
正如已经指出的那样,检查文档将为您提供大量有用的信息,从指令开始提供给strptime
和strftime
(分别是解析和格式化时间)函数需要在这里。
您案例的一个工作示例是:
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