]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
dates: Add DateTimeFormat.extract() support function
authorAarni Koskela <akx@iki.fi>
Mon, 4 Jan 2016 17:34:24 +0000 (19:34 +0200)
committerAarni Koskela <akx@iki.fi>
Sat, 23 Jan 2016 19:07:02 +0000 (21:07 +0200)
babel/dates.py

index 20d1ab814365d1ec46719847d93bf9279dc4663e..b0ba9c082aa1d74d37cc6de268bfbdd701a833d3 100644 (file)
@@ -1041,6 +1041,25 @@ class DateTimeFormat(object):
         else:
             raise KeyError('Unsupported date/time field %r' % char)
 
+    def extract(self, char):
+        char = str(char)[0]
+        if char == 'y':
+            return self.value.year
+        elif char == 'M':
+            return self.value.month
+        elif char == 'd':
+            return self.value.day
+        elif char == 'H':
+            return self.value.hour
+        elif char == 'h':
+            return (self.value.hour % 12 or 12)
+        elif char == 'm':
+            return self.value.minute
+        elif char == 'a':
+            return int(self.value.hour >= 12)  # 0 for am, 1 for pm
+        else:
+            raise NotImplementedError("Not implemented: extracting %r from %r" % (char, self.value))
+
     def format_era(self, char, num):
         width = {3: 'abbreviated', 4: 'wide', 5: 'narrow'}[max(3, num)]
         era = int(self.value.year >= 0)