【问题标题】:Convert Long Int Timestamp to Date/Time将 Long Int 时间戳转换为日期/时间
【发布时间】:2012-04-30 11:16:37
【问题描述】:

我使用连接 chrome 'History' 文件的 sqlite3 进行分析。但是有last_visit_time的数据,也就是时间戳,但是不知道怎么改成实时的。 我这样测试:

2012-04-18 23:22:11.084300 (utctime)

2012-04-19 01:22:11.084300 (myPC time)

12,979,264,931,952,304 (the time stamp in the data)

我几乎同时打印了 utctime 并点击了一个网站。所以我得到了上面的统计数据。 12,979,264,931,952,304 是long int,所以无法正常转换。

如何将时间戳转换为日期?

【问题讨论】:

    标签: python sqlite datetime time timestamp


    【解决方案1】:

    它存储的时间戳是自 1601 年 1 月 1 日午夜 UTC 以来的微秒数。要将其转换为当前时间,您可以在 this answer 的帮助下将您拥有的微秒数添加到纪元日期,像这样:

    >>> import datetime
    >>> epoch_start = datetime.datetime(1601, 1, 1)
    >>> delta = datetime.timedelta(microseconds=12979264931952304)
    >>> epoch_start + delta
    datetime.datetime(2012, 4, 18, 23, 22, 11, 952304)
    

    要转换为您的本地时区,您可以使用this method(请注意,我目前是 UTC - 4,而看起来您是 UTC + 2):

    >>> from dateutil import tz
    >>> from_zone = tz.tzutc()
    >>> to_zone = tz.tzlocal()
    >>> utc_time = (epoch_start + delta).replace(tzinfo=from_zone)
    >>> utc_time.astimezone(to_zone)
    datetime.datetime(2012, 4, 18, 19, 22, 11, 952304, tzinfo=tzlocal())
    

    【讨论】:

      猜你喜欢
      • 2021-04-07
      • 1970-01-01
      • 2017-04-25
      • 2022-01-08
      • 1970-01-01
      • 2020-10-19
      相关资源
      最近更新 更多