[英]How to format date in python
我用python做了一个爬虫。
但是我的爬虫以这种格式获取日期:
s = page_ad.findAll('script')[25].text.replace('\'', '"')
s = re.search(r'\{.+\}', s, re.DOTALL).group() # get json data
s = re.sub(r'//.+\n', '', s) # replace comment
s = re.sub(r'\s+', '', s) # strip whitspace
s = re.sub(r',}', '}', s) # get rid of last , in the dict
dataLayer = json.loads(s)
print dataLayer["page"]["adDetail"]["adDate"]
2017-01-1412:28:07
我只想要没有小时的日期( 2017-01-14
),如果没有空格,如何只获取日期?
使用字符串子集:
>>> date ="2017-01-1412:28:07"
>>> datestr= date[:-8]
>>> datestr
'2017-01-14'
>>>
试试这个代码:
In [2]: from datetime import datetime
In [3]: now = datetime.now()
In [4]: now.strftime('%Y-%m-%d')
Out[4]: '2017-01-24'
我建议您先将datetime
解析为datetime
对象,然后datetime
显示相关信息。
为此,更好的方法是为此使用库。 我将dateparser用于此任务,示例用法:
import dateparser
date = dateparser.parse('12/12/12')
date.strftime('%Y-%m-%d')
由于这不是标准的日期格式,只需将末尾切片即可。
st = "2017-01-1412:28:07"
res = st[:10]
print res
>>>2017-01-14
使用datetime
如下首先将其转换为 datetime 对象,然后使用stftime()
函数根据需要格式化输出:
from datetime import datetime
ad_date = dataLayer["page"]["adDetail"]["adDate"]
print datetime.strptime(ad_date, "%Y-%m-%d%H:%M:%S").strftime("%Y-%m-%d")
这将打印:
2017-01-14
通过使用这种方法,您可以灵活地显示其他项目,例如在末尾添加%A
可以为您提供星期几:
print datetime.strptime(ad_date, "%Y-%m-%d%H:%M:%S").strftime("%Y-%m-%d %A")
例如
2017-01-14 Saturday
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.