用连字符重新格式化日期字符串

问题描述:

我对python比较新,想从头开始编写干净的代码。我需要一个将“20140101”格式的日期格式化为“2014-01-01”的字符串解析器。如何实现我这是通过:用连字符重新格式化日期字符串

def parse(date): 

    list_date = list(date) 
    list_date.insert(4,"-") 
    list_date.insert(7,"-") 
    return "".join(list_date) 

这工作完全正常,但看上去不是很干净。也许有没有其他解决方案,但如果有更pythonic的方式来编码将不胜感激,如果你会分享这个!

+1

您是否试过阅读'datetime.strptime'和'datetime.strftime'文档? –

def parse(date): 
    return "{}-{}-{}".format(date[:4], date[4:6], date[6:]) 

可能已经犯了一个小错误,但应该这样做的伎俩,给你如何做到这一点。

另请参阅pyformat.info以获取有关Python字符串格式的更多信息。

此外,我建议您查看datetime模块以获取更多有关处理日期的Pythonic方法的更多信息。 ;)

+1

可能甚至不需要格式。 '' - '。join'也可以工作 –

+0

真正的数据。刚刚提出的'格式'会为新用户提供更直观的选择。 –

您可以使用格式,如B. Eckles所述。但你也可以这样做:你不是真正使用它的任何东西不是代替你的字符串的部分更

def parse(date): 
    return "%s-%s-%s" % (date[:4], date[4:6], date[6:]) 

使用格式似乎没有必要。