在Python中更改日期格式

时间:2015-01-12 11:02:16

标签: python

我需要在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

3 个答案:

答案 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:

  1. 从输入文本文件中获取内容。
  2. 使用re模块,即正则表达式从内容中获取所有模式。
  3. 使用set方法删除重复值。
  4. 将datetime字符串转换为时间字符串并更新内容。
  5. 将新内容写入同一文件或其他文件。
  6. 代码是: -

    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'