diff options
author | mathieui <mathieui@mathieui.net> | 2020-05-22 17:13:11 +0200 |
---|---|---|
committer | mathieui <mathieui@mathieui.net> | 2020-05-23 16:13:44 +0200 |
commit | 4210f5c776dab2439cecb1e19dc3997109cab400 (patch) | |
tree | 847060410690cf0da16fe6c6bd95aec0ab49e07d /poezio/common.py | |
parent | 29eef159d50c836fbd7a27770775d63700dc7f19 (diff) | |
download | poezio-4210f5c776dab2439cecb1e19dc3997109cab400.tar.gz poezio-4210f5c776dab2439cecb1e19dc3997109cab400.tar.bz2 poezio-4210f5c776dab2439cecb1e19dc3997109cab400.tar.xz poezio-4210f5c776dab2439cecb1e19dc3997109cab400.zip |
Convert all datetimes to UTC when doing comparisons
Diffstat (limited to 'poezio/common.py')
-rw-r--r-- | poezio/common.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/poezio/common.py b/poezio/common.py index 7cddc306..98870dda 100644 --- a/poezio/common.py +++ b/poezio/common.py @@ -8,7 +8,11 @@ Various useful functions. """ -from datetime import datetime, timedelta +from datetime import ( + datetime, + timedelta, + timezone, +) from pathlib import Path from typing import Dict, List, Optional, Tuple, Union @@ -488,3 +492,14 @@ def unique_prefix_of(a: str, b: str) -> str: return a[:i+1] # both are equal, return a return a + + +def to_utc(time: datetime) -> datetime: + """Convert a datetime-aware time zone into raw UTC""" + tzone = datetime.now().astimezone().tzinfo + if time.tzinfo is not None: # Convert to UTC + time = time.astimezone(tz=timezone.utc) + else: # Assume local tz, convert to URC + time = time.replace(tzinfo=tzone).astimezone(tz=timezone.utc) + # Return an offset-naive datetime + return time.replace(tzinfo=None) |