0

拆分后我有一条线,如下所示:

lineaftersplit=Jan 31 00:57:07 2012 GMT

我如何从中仅获得 2012 年并比较它是否介于 (2010) 和 (2013) 之间

4

4 回答 4

4

如果lineaftersplit是字符串值,可以使用datetime模块解析出信息,包括年份:

import datetime

parsed_date = datetime.datetime.strptime(lineaftersplit, '%b %d %H:%M:%S %Y %Z')

if 2010 <= parsed_date.year <= 2013:
    # year between 2010 and 2013.

这样做的好处是您可以对datetime对象进行进一步测试,包括排序和日期算术。

演示:

>>> import datetime
>>> lineaftersplit="Jan 31 00:57:07 2012 GMT"
>>> parsed_date = datetime.datetime.strptime(lineaftersplit, '%b %d %H:%M:%S %Y %Z')
>>> parsed_date
datetime.datetime(2012, 1, 31, 0, 57, 7)
>>> parsed_date.year
2012
于 2013-06-20T09:33:50.063 回答
2

您可以使用str.rsplit

>>> strs = 'Jan 31 00:57:07 2012 GMT'

str.rstrip将返回如下列表:

>>> strs.rsplit(None,2)
['Jan 31 00:57:07', '2012', 'GMT']

现在我们需要第二项:

>>> year = strs.rsplit(None,2)[1]
>>> year
'2012'
>>> if 2010 <= int(year) <= 2013:  #apply int() to get the integer value
...     #do something
... 
于 2013-06-20T09:32:19.983 回答
0

尝试这个:

st="Jan 31 00:57:07 2012 GMT".split()
year=int(st[3])

如果字符串始终采用这种格式,这实际上有效

于 2013-06-20T09:34:25.187 回答
0
 str='Jan 31 00:57:07 2012 GMT'
 str.split()[3]
于 2013-06-20T09:35:02.997 回答