【问题标题】:Format the iCloud Timestamp格式化 iCloud 时间戳
【发布时间】:2013-11-11 16:49:45
【问题描述】:

我正在使用pyiCloud 通过 python 访问 iCloud API。

当我使用 API 获取 iPhone 的 GPS 位置时,我得到了:

>>> api.iphone.location()
{u'timeStamp': 1384188010186L, u'locationFinished': True, u'longitude': -0.14189, u'positionType': u'GPS', u'locationType': None, u'latitude': 51.501364, u'isOld': False, u'horizontalAccuracy': 5.0}

这正是我需要的信息。我遇到的问题是弄清楚如何将该时间戳转换为有意义的东西。我相信我之前已经看到过这种时间格式并对其进行了转换,但截至目前我无法弄清楚。

我真的很想解释一下这种格式,是 UTC 还是 2000 年以来的刻度?

我正在寻找的格式类似于:YYYYMMDD HH:MM:SS AM/PM

【问题讨论】:

    标签: python gps icloud


    【解决方案1】:

    here 看来,时间戳位于美国/太平洋新时区,您需要将其除以 1000。

    local_tz = pytz.timezone('US/Pacific-New')
    date = datetime.datetime.fromtimestamp(
        float(data['timeStamp']) / 1000,
        local_tz
    )
    

    【讨论】:

    • 嗯,我在东部时区。也使用你的方法1384188010186L 输出:datetime.datetime(2013, 11, 11, 8, 40, 10, 186000, tzinfo=<DstTzInfo 'US/Pacific-New' PST-1 day, 16:00:00 STD>) 实际时间应该是 10、11 或 12 之类的某个时间。但我想太平洋到东部的时差可能是这个原因。
    • 感谢您的帮助,这是我的最终结果:import pytz import datetime local_tz = pytz.timezone('US/Eastern') timeStamp = api.iphone.location() date = datetime.datetime.fromtimestamp(float(timeStamp['timeStamp']) / 1000, local_tz) date.strftime("%Y%m%d %I:%M:%S %p")
    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 2018-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多