我如何获得日期的日期格式,用于在python中的google-fit API中过滤结果



我正在尝试使用google API文档提供的用于这里记录的会话的示例来进行GET查询,如下所示:

curl --header "Authorization: Bearer ya29.1.yourtokenvalue" -X GET 
--header "Content-Type: application/json;encoding=utf-8" 
"https://www.googleapis.com/fitness/v1/users/me/sessions?startTime=2014-04-01T00:00:00.000Z&endTime=2014-04-30T23:59:59.999Z"

如您所见,日期格式如下:

2014-04-01T00:00:00.000Z

我目前正在python中构建日期,如下所示:从datetime导入datetime,timedelta

PREVIOUS_DAYS=1
end = datetime.now().replace(minute=0, second=0)
start = end_date - timedelta(days = PREVIOUS_DAYS)
end_date = datetime.fromtimestamp(end).astimezone().strftime('%Y-%m-%dT%H:%M:%S.')
start_date = datetime.fromtimestamp(start).astimezone().strftime('%Y-%m-%dT%H:%M:%S.')
print str(start_date)

我不知道de T是什么意思,在strftime文档中也找不到任何关于时间戳末尾毫秒的信息。我也无法在谷歌API文档中找到任何信息,所以这可能只是我希望知道的一个标准?

看起来这是一种称为ISO 8601的标准格式。Python支持使用isoformat函数以这种格式对任何日期时间对象进行编码。你将看到的唯一区别是";Z";后缀,表示时区为UTC。Python将使用不同的表示法"+00:00";这也是标准可接受的。

>>> from datetime import datetime, timezone
>>> datetime.now(timezone.utc).isoformat()
2014-04-01T00:00:00.000+00:00

如果你真的想保留";Z";postfix,可以手动剥离"+00:00";,并添加一个";Z";,但我相信这没有必要。

>>> from datetime import datetime, timezone
>>> datetime.now(timezone.utc).isoformat()[:-6] + "Z"
2014-04-01T00:00:00.000Z

相关内容

  • 没有找到相关文章

最新更新