A Python port of the Invisible Internet Project (I2P)
at main 26 lines 650 B view raw
1"""RFC 822 / HTTP date formatting. 2 3Ported from net.i2p.util.RFC822Date. 4""" 5 6from __future__ import annotations 7 8import time 9from email.utils import formatdate, parsedate_to_datetime 10 11 12def to_rfc822(timestamp_ms: int) -> str: 13 """Convert millisecond timestamp to RFC 822 date string.""" 14 return formatdate(timeval=timestamp_ms / 1000.0, usegmt=True) 15 16 17def parse_rfc822(date_str: str) -> int | None: 18 """Parse an RFC 822 date string to millisecond timestamp. 19 20 Returns None if parsing fails. 21 """ 22 try: 23 dt = parsedate_to_datetime(date_str) 24 return int(dt.timestamp() * 1000) 25 except Exception: 26 return None