繁体   English   中英

如何在python中格式化日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM