Various changes.
[python_utils.git] / datetime_utils.py
index f2cae8b9f06b2f69e5132685f611e4aaceeb02d2..7787c6f0b0b74b84b84fca28bba8d2381e1d8668 100644 (file)
@@ -51,12 +51,18 @@ def date_and_time_to_datetime(date: datetime.date,
     )
 
 
-def datetime_to_date(date: datetime.datetime) -> datetime.date:
-    return datetime.date(
-        date.year,
-        date.month,
-        date.day
-    )
+def datetime_to_date_and_time(
+        dt: datetime.datetime
+) -> Tuple[datetime.date, datetime.time]:
+    return (dt.date(), dt.timetz())
+
+
+def datetime_to_date(dt: datetime.datetime) -> datetime.date:
+    return datetime_to_date_and_time(dt)[0]
+
+
+def datetime_to_time(dt: datetime.datetime) -> datetime.time:
+    return datetime_to_date_and_time(dt)[1]
 
 
 # An enum to represent units with which we can compute deltas.
@@ -330,6 +336,8 @@ def minute_number_to_time_string(minute_num: MinuteOfDay) -> str:
 
 def parse_duration(duration: str) -> int:
     """Parse a duration in string form."""
+    if duration.isdigit():
+        return int(duration)
     seconds = 0
     m = re.search(r'(\d+) *d[ays]*', duration)
     if m is not None: