从Python中的复杂字符串中检索日期

我正在尝试使用datetime.strptime从两个字符串中获取单个datetime.

时间很简单(例如,晚上8:53),因此我可以执行以下操作:

theTime = datetime.strptime(givenTime, "%I:%M%p")

但是,该字符串不仅具有日期,还具有类似于http://site.com/?year=2011\u0026amp;month=10\u0026amp;day=5\u0026amp;hour=11的格式的链接.我知道我可以做类似的事情:

theDate = datetime.strptime(givenURL, "http://site.com/?year=%Y&month=%m&day=%d&hour=%H")

但是我不想从链接中获取一个小时,因为它是在其他地方获取的.有没有办法放置一个虚拟符号(例如%x或类似符号)作为最后一个变量的灵活空间?

最后,我设想只有一行类似于:

theDateTime = datetime.strptime(givenURL + givenTime, ""http://site.com/?year=%Y&month=%m&day=%d&hour=%x%I:%M%p")

(尽管很明显,不会使用%x).有任何想法吗?

解决方法:

想想一下,如果您想简化URL的跳过时间,可以使用以下方式例如split:

givenURL = 'http://site.com/?year=2011&month=10&day=5&hour=11'
pattern = "http://site.com/?year=%Y&month=%m&day=%d"
theDate = datetime.strptime(givenURL.split('&hour=')[0], pattern)

因此,不确定是否正确理解了您,但是:

givenURL = 'http://site.com/?year=2011&month=10&day=5&hour=11'
datePattern = "http://site.com/?year=%Y&month=%m&day=%d"
timePattern = "&time=%I:%M%p"

theDateTime = datetime.strptime(givenURL.split('&hour=')[0] + '&time=' givenTime, datePattern + timePattern)
上一篇:c-为什么strptime()在OSX和Linux上的行为不同?


下一篇:日期strftime、strptime