parsingdatestring和更改格式

我有格式为“2010年2月15日”的datestring。 我想把格式改成'15 / 02/2010'。 我该怎么做?

datetime模块可以帮助你:

 datetime.datetime.strptime(date_string, format1).strftime(format2) 

你可以安装dateutil库。 它的parse函数可以确定一个string的格式,而不需要像使用datetime.strptime一样指定格式。

 from dateutil.parser import parse dt = parse('Mon Feb 15 2010') print(dt) # datetime.datetime(2010, 2, 15, 0, 0) print(dt.strftime('%d/%m/%Y')) # 15/02/2010 
 >>> from_date="Mon Feb 15 2010" >>> import time >>> conv=time.strptime(from_date,"%a %b %d %Y") >>> time.strftime("%d/%m/%Y",conv) '15/02/2010' 

将string转换为datetime对象

 from datetime import datetime s = "2016-03-26T09:25:55.000Z" f = "%Y-%m-%dT%H:%M:%S.%fZ" datetime = datetime.strptime(s, f) print(datetime) output: 2016-03-26 09:25:55 

由于这个问题经常来,这里是简单的解释。

datetime timetime模块有两个重要的function。

  • strftime – 从date时间或时间对象中创builddate或时间的string表示forms。
  • strptime – 从string创builddate时间或时间对象。

在这两种情况下,我们都需要一个格式化string。 这是表示date或时间是如何格式化在您的string。

现在让我们假设我们有一个date对象。

 >>> from datetime import datetime >>> d = datetime(2010, 2, 15) >>> d datetime.datetime(2010, 2, 15, 0, 0) 

如果我们想从这个date创build一个string格式为'Mon Feb 15 2010'

 >>> s = d.strftime('%a %b %d %y') >>> print s Mon Feb 15 10 

让我们假设我们想把这个s再次转换成datetime对象。

 >>> new_date = datetime.strptime(s, '%a %b %d %y') >>> print new_date 2010-02-15 00:00:00 

有关date时间,请参阅此文档的所有格式化指令。

只是为了完成:当使用strptime()parsingdate,并且date包含date,月份等名称时,请注意您必须考虑到语言环境。

它在文档中也被作为脚注提及。

举个例子:

 import locale print(locale.getlocale()) >> ('nl_BE', 'ISO8859-1') from datetime import datetime datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d') >> ValueError: time data '6-Mar-2016' does not match format '%d-%b-%Y' locale.setlocale(locale.LC_ALL, 'en_US') datetime.strptime('6-Mar-2016', '%d-%b-%Y').strftime('%Y-%m-%d') >> '2016-03-06'