转换(YYYY-MM-DD-HH:MM:SS)日期时间

时间:2013-04-29 19:48:06

标签: python datetime time

我想转换一个像"29-Apr-2013-15:59:02"这样的字符串 更有用的东西。

破折号可以很容易地用空格或其他字符替换。这种格式是理想的:"YYYYMMDD HH:mm:ss (20130429 15:59:02)"

修改

对不起,我没有在另一篇文章中特别看到答案。但同样,我是无知的,所以可能一直在寻找解决方案并且不知道它。我有这个工作,但我不认为它“漂亮。”

#29-Apr-2013-15:59:02

import sys, datetime, time

#inDate = sys.argv[1]
inDate = 29-Apr-2013-15:59:02

def getMonth(month):
    monthDict = {'Jan':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'}
    for k, v in monthDict.iteritems():
        if month == k:
            return v

day = inDate[:2]
#print day
month = inDate[3:6]
#print month
year = inDate[7:11]
#print year
time = inDate[-8:]
#print time

newDate = year+getMonth(month)+day
newDateTime = newDate+" "+time

print newDate
print newDateTime

有关改进的任何想法吗?

3 个答案:

答案 0 :(得分:32)

使用datetime.strptime()inDate字符串解析为日期对象,使用datetime.strftime()以您喜欢的任何格式输出:

>>> from datetime import datetime
>>> inDate = "29-Apr-2013-15:59:02"
>>> d = datetime.strptime(inDate, "%d-%b-%Y-%H:%M:%S")
>>> d
datetime.datetime(2013, 4, 29, 15, 59, 2)
>>> d.strftime("YYYYMMDD HH:mm:ss (%Y%m%d %H:%M:%S)")
'YYYYMMDD HH:mm:ss (20130429 15:59:02)'

答案 1 :(得分:1)

你调查过dateutil吗?

http://labix.org/python-dateutil

我发现了一个与你类似的问题: How do I translate a ISO 8601 datetime string into a Python datetime object?

答案 2 :(得分:0)

您想要查看datetime,特别是strptime