diff --git a/test/test_utils.py b/test/test_utils.py index cd0b08a..f42da21 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -47,3 +47,16 @@ async def test_convert_browser_context_cookies_uses_url_filter(): browser_context.cookies.assert_awaited_once_with(urls=["https://www.douyin.com"]) assert cookie_str == "sessionid=abc" assert cookie_dict == {"sessionid": "abc"} + + +def test_rfc2822_to_timestamp_converts_utc_offset(): + # 2023-12-23 17:12:54 +0800 == 2023-12-23 09:12:54 UTC == 1703322774 + assert utils.rfc2822_to_timestamp("Sat Dec 23 17:12:54 +0800 2023") == 1703322774 + + +def test_rfc2822_to_timestamp_agrees_with_china_datetime(): + rfc2822_time = "Sat Dec 23 17:12:54 +0800 2023" + + assert utils.rfc2822_to_timestamp(rfc2822_time) == int( + utils.rfc2822_to_china_datetime(rfc2822_time).timestamp() + ) diff --git a/tools/time_util.py b/tools/time_util.py index 5777bae..d157f98 100644 --- a/tools/time_util.py +++ b/tools/time_util.py @@ -118,7 +118,7 @@ def rfc2822_to_timestamp(rfc2822_time): dt_object = datetime.strptime(rfc2822_time, rfc2822_format) # Convert datetime object to UTC time - dt_utc = dt_object.replace(tzinfo=timezone.utc) + dt_utc = dt_object.astimezone(timezone.utc) # Calculate Unix timestamp from UTC time timestamp = int(dt_utc.timestamp())