diff options
Diffstat (limited to 'src/utils/datetime/common.py')
| -rw-r--r-- | src/utils/datetime/common.py | 42 |
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() |
