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
time
或time
模块有两个重要的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'
使用datetime库http://docs.python.org/library/datetime.html查找9.1.7。; especiall strptime()strftime()行为¶示例http://pleac.sourceforge.net/pleac_python/datesandtimes.html