aboutsummaryrefslogtreecommitdiff
path: root/src/utils/datetime/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/datetime/common.py')
-rw-r--r--src/utils/datetime/common.py42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/utils/datetime/common.py b/src/utils/datetime/common.py
new file mode 100644
index 00000000..7235fbab
--- /dev/null
+++ b/src/utils/datetime/common.py
@@ -0,0 +1,42 @@
+import datetime as _datetime
+import enum
+
+ISO8601_FORMAT_DT = "%Y-%m-%dT%H:%M:%S"
+ISO8601_FORMAT_TZ = "%z"
+
+TIME_HUMAN = "%H:%M:%S"
+DATE_HUMAN = "%Y-%m-%d"
+
+class TimeSpec(enum.Enum):
+ NORMAL = 1
+ MILLISECOND = 2
+
+TIME_SECOND = 1
+TIME_MINUTE = TIME_SECOND*60
+TIME_HOUR = TIME_MINUTE*60
+TIME_DAY = TIME_HOUR*24
+TIME_WEEK = TIME_DAY*7
+
+SECONDS_MINUTES = 60
+SECONDS_HOURS = SECONDS_MINUTES*60
+SECONDS_DAYS = SECONDS_HOURS*24
+SECONDS_WEEKS = SECONDS_DAYS*7
+
+UNIT_MINIMUM = 6
+UNIT_SECOND = 5
+UNIT_MINUTE = 4
+UNIT_HOUR = 3
+UNIT_DAY = 2
+UNIT_WEEK = 1
+UNIT_MONTH = 1
+UNIT_YEAR = 1
+
+def utcnow() -> _datetime.datetime:
+ return _datetime.datetime.utcnow().replace(tzinfo=_datetime.timezone.utc)
+
+def timestamp(seconds: float) -> _datetime.datetime:
+ return _datetime.datetime.fromtimestamp(seconds).replace(
+ tzinfo=_datetime.timezone.utc)
+
+def seconds_since(dt: _datetime.datetime) -> float:
+ return (utcnow()-dt).total_seconds()