我需要在python中将日期字符串“Dec 17 00:00:06”转换为字符串“2014-12-17 00:00:06”。我查看了datetime.strptime,但仍无法找到解决方法。 例如:
Dec 17 00:00:06至2014-12-17 00:00:06
答案 0 :(得分:0)
您可以使用datetime
模块。
例如
>>> import datetime
>>> do = datetime.datetime.strptime("Dec 17 2014 00:00:06", "%b %d %Y %H:%M:%S")
>>> do.strftime("%Y-%m-%d %H:%M:%S")
'2014-12-17 00:00:06'
我们可以将年份值替换为2014
,如下所示:
>>> do = datetime.datetime.strptime("Dec 17 00:00:06", "%b %d %H:%M:%S")
>>> do.strftime("%Y-%m-%d %H:%M:%S")
'1900-12-17 00:00:06'
>>> do1 = do.replace(year=2014)
>>> do1.strftime("%Y-%m-%d %H:%M:%S")
'2014-12-17 00:00:06'
如果我们只想要time
值,那么我们可以尝试像 -
>>> do = datetime.datetime.strptime("Dec 17 00:00:06", "%b %d %H:%M:%S")
>>> do.strftime("%H:%M:%S")
'00:00:06'
已更新:使用时间字符串从文件更新日期时间字符串。
ALGO:
re
模块,即正则表达式从内容中获取所有模式。set
方法删除重复值。代码是: -
import datetime
import re
p = "/home/vivek/Desktop/input.txt"
with open(p, "rb") as fp:
content = fp.read()
date_values = set(re.findall("\[([^]]+)\]", content))
for i in date_values:
do = datetime.datetime.strptime(i, "%b %d %H:%M:%S")
content = content.replace("[%s]"%i, "%s"%(do.strftime("%H:%M:%S")) )
p = "/home/vivek/Desktop/output.txt"
with open(p, "wb") as fp:
fp.write(content)
答案 1 :(得分:0)
使用datetime模块可以帮助您。
from datetime import datetime
首先通过写下面的行将日期字符串转换为日期时间对象。
date_obj = datetime.strptime("Dec 17 2014 00:00:06", "%b %d %Y %H:%M:%S")
然后将该日期对象转换为字符串。
date_obj.strftime("%Y-%m-%d %H:%M:%S")
您可以更改上述strftime()函数的参数,并根据您的要求获得不同的格式。请关注python datetime
以下是可以在strftime()函数中传递的参数选项的链接parameter options
根据您的要求去玩游戏。
答案 2 :(得分:0)
from dateutil import parser
parser.parse('Dec 17 00:00:06').isoformat()
>>> '2015-12-17T00:00:06'