diff --git a/modules/poivy/pages.py b/modules/poivy/pages.py
index 302d698f..c1aa9edb 100644
--- a/modules/poivy/pages.py
+++ b/modules/poivy/pages.py
@@ -19,7 +19,7 @@
from weboob.tools.browser import BrowserBanned
from weboob.tools.browser2.page import HTMLPage, LoggedPage, method, ListElement, ItemElement
-from weboob.tools.browser2.filters import Env, CleanText, CleanDecimal, Field, Attr, Time, Date, Link, Format
+from weboob.tools.browser2.filters import Env, CleanText, CleanDecimal, Field, Attr, Time, DateTime, Link, Format
from weboob.capabilities.bill import Subscription, Detail
from datetime import datetime
@@ -81,7 +81,7 @@ class HistoryPage(LoggedPage, HTMLPage):
klass = Detail
obj_id = None
- obj_datetime = Date(CleanText('td[1] | td[2]'))
+ obj_datetime = DateTime(CleanText('td[1] | td[2]'))
obj_price = CleanDecimal('td[7]', replace_dots=False, default=0)
obj_currency = u'EUR'
obj_label = Format(u"%s from %s to %s - %s",
diff --git a/modules/sachsen/pages.py b/modules/sachsen/pages.py
index 5b6eb080..07588417 100644
--- a/modules/sachsen/pages.py
+++ b/modules/sachsen/pages.py
@@ -18,7 +18,7 @@
# along with weboob. If not, see .
from weboob.tools.browser2.page import HTMLPage, method, ListElement, ItemElement
-from weboob.tools.browser2.filters import Env, CleanText, Regexp, Field, Date, Map, Attr
+from weboob.tools.browser2.filters import Env, CleanText, Regexp, Field, DateTime, Map, Attr
from weboob.capabilities.gauge import Gauge, GaugeMeasure, GaugeSensor
from weboob.capabilities.base import NotAvailable, NotLoaded
@@ -87,7 +87,7 @@ class ListPage(HTMLPage):
def obj_sensors(self):
sensors = []
- lastdate = Date(Regexp(Env('datetime'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5', default=NotAvailable))(self)
+ lastdate = DateTime(Regexp(Env('datetime'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5', default=NotAvailable))(self)
forecast = Map(Env('forecast'), self.forecasts, default=NotAvailable)(self)
alarm = Map(Env('alarm'), self.alarmlevel, default=u'')(self)
@@ -109,7 +109,7 @@ class HistoryPage(HTMLPage):
def condition(self):
return self.verif.match(self.el[0].text_content())
- obj_date = Date(Regexp(CleanText('.'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5'))
+ obj_date = DateTime(Regexp(CleanText('.'), r'(\d+)\.(\d+)\.(\d+) (\d+):(\d+)', r'\3-\2-\1 \4:\5'))
sensor_types = [u'Level', u'Flow']
def obj_level(self):
diff --git a/weboob/tools/browser2/filters.py b/weboob/tools/browser2/filters.py
index c76dbb6e..0740fcec 100644
--- a/weboob/tools/browser2/filters.py
+++ b/weboob/tools/browser2/filters.py
@@ -268,13 +268,20 @@ class Map(Filter):
raise KeyError('Unable to handle %r' % txt)
-class Date(Filter):
+class DateTime(Filter):
def filter(self, txt):
if empty(txt):
return txt
return parse_date(txt)
+class Date(DateTime):
+ def filter(self, txt):
+ datetime = super(Date, self).filter(txt)
+ if datetime is not None:
+ return datetime.date
+
+
class Time(Filter):
klass = datetime.time
regexp = re.compile(ur'(?P\d+):?(?P\d+)(:(?P\d+))?')