我正在尝试使用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)