File: time.py

package info (click to toggle)
python-yalexs 9.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,120 kB
  • sloc: python: 7,916; makefile: 3; sh: 2
file content (21 lines) | stat: -rw-r--r-- 559 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from __future__ import annotations

import datetime
from functools import lru_cache

import ciso8601
import dateutil.parser


@lru_cache(maxsize=512)
def epoch_to_datetime(epoch: str | float) -> datetime.datetime:
    """Convert epoch to datetime."""
    return datetime.datetime.fromtimestamp(float(epoch) / 1000.0)


def parse_datetime(datetime_string: str) -> datetime.datetime:
    """Parse a datetime string."""
    try:
        return ciso8601.parse_datetime(datetime_string)
    except ValueError:
        return dateutil.parser.parse(datetime_string)