diff --git a/freqtrade/util/__init__.py b/freqtrade/util/__init__.py index f1759f27e..67cdafc3c 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, dt_now_ts +from freqtrade.util.datetime_helpers import dt_from_ts, dt_now, dt_ts from freqtrade.util.ft_precise import FtPrecise from freqtrade.util.periodic_cache import PeriodicCache @@ -6,7 +6,7 @@ from freqtrade.util.periodic_cache import PeriodicCache __all__ = [ 'dt_from_ts', 'dt_now', - 'dt_now_ts', + 'dt_ts', 'FtPrecise', 'PeriodicCache', ] diff --git a/freqtrade/util/datetime_helpers.py b/freqtrade/util/datetime_helpers.py index 6f169e7e5..9e7f0a8a8 100644 --- a/freqtrade/util/datetime_helpers.py +++ b/freqtrade/util/datetime_helpers.py @@ -1,4 +1,5 @@ from datetime import datetime, timezone +from typing import Optional def dt_now() -> datetime: @@ -6,8 +7,10 @@ def dt_now() -> datetime: return datetime.now(timezone.utc) -def dt_now_ts() -> int: +def dt_ts(dt: Optional[datetime] = None) -> int: """Return the current timestamp in ms as a timestamp in UTC.""" + if dt: + return int(dt.timestamp() * 1000) return int(dt_now().timestamp() * 1000) diff --git a/tests/utils/test_datetime_helpers.py b/tests/utils/test_datetime_helpers.py index 7b7e2b7c6..47487a04b 100644 --- a/tests/utils/test_datetime_helpers.py +++ b/tests/utils/test_datetime_helpers.py @@ -3,19 +3,24 @@ from datetime import datetime, timedelta, timezone import pytest import time_machine -from freqtrade.util import dt_from_ts, dt_now, dt_now_ts +from freqtrade.util import dt_from_ts, dt_now, dt_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) + assert dt_ts() == int(now.timestamp() * 1000) + assert dt_ts(now) == 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) + assert dt_ts() == int(dt_now().timestamp() * 1000) + # Test with different time than now + assert dt_ts(now) == int(now.timestamp() * 1000) + + @pytest.mark.parametrize('as_ms', [True, False])