From aa949153eb30b0e99c53f81a8a76ae6f18e04cd6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sun, 14 May 2023 10:43:06 +0200 Subject: [PATCH] Add now ts helper --- freqtrade/util/__init__.py | 3 ++- freqtrade/util/datetime_helpers.py | 5 +++++ tests/utils/test_datetime_helpers.py | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/freqtrade/util/__init__.py b/freqtrade/util/__init__.py index 37d95e511..f1759f27e 100644 --- a/freqtrade/util/__init__.py +++ b/freqtrade/util/__init__.py @@ -1,4 +1,4 @@ -from freqtrade.util.datetime_helpers import dt_from_ts, dt_now +from freqtrade.util.datetime_helpers import dt_from_ts, dt_now, dt_now_ts from freqtrade.util.ft_precise import FtPrecise from freqtrade.util.periodic_cache import PeriodicCache @@ -6,6 +6,7 @@ from freqtrade.util.periodic_cache import PeriodicCache __all__ = [ 'dt_from_ts', 'dt_now', + 'dt_now_ts', 'FtPrecise', 'PeriodicCache', ] diff --git a/freqtrade/util/datetime_helpers.py b/freqtrade/util/datetime_helpers.py index aa9403cba..6f169e7e5 100644 --- a/freqtrade/util/datetime_helpers.py +++ b/freqtrade/util/datetime_helpers.py @@ -6,6 +6,11 @@ def dt_now() -> datetime: return datetime.now(timezone.utc) +def dt_now_ts() -> int: + """Return the current timestamp in ms as a timestamp in UTC.""" + return int(dt_now().timestamp() * 1000) + + def dt_from_ts(timestamp: float) -> datetime: """ Return a datetime from a timestamp. diff --git a/tests/utils/test_datetime_helpers.py b/tests/utils/test_datetime_helpers.py index 947aab1b8..7b7e2b7c6 100644 --- a/tests/utils/test_datetime_helpers.py +++ b/tests/utils/test_datetime_helpers.py @@ -3,17 +3,19 @@ from datetime import datetime, timedelta, timezone import pytest import time_machine -from freqtrade.util import dt_from_ts, dt_now +from freqtrade.util import dt_from_ts, dt_now, dt_now_ts def test_dt_now(): with time_machine.travel("2021-09-01 05:01:00 +00:00", tick=False) as t: now = datetime.now(timezone.utc) assert dt_now() == now + assert dt_now_ts() == int(now.timestamp() * 1000) t.shift(timedelta(hours=5)) assert dt_now() >= now assert dt_now() == datetime.now(timezone.utc) + assert dt_now_ts() == int(dt_now().timestamp() * 1000) @pytest.mark.parametrize('as_ms', [True, False])