如何获取用于过滤结果的日期格式 google 适合 API 在 python 中?
How can I get the date format for a date used to filter results in the google fit API in python?
我正在尝试 GET
查询,使用 google 的 API 的文档提供的示例作为参考,用于记录 here 的会话如下:
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 中构建日期如下:
从日期时间导入日期时间,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 documentation 中时间戳末尾的毫秒数的信息。我在 google 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”后缀,可以手动去掉“+00:00”,然后添加一个“Z”,但我相信没有必要。
>>> from datetime import datetime, timezone
>>> datetime.now(timezone.utc).isoformat()[:-6] + "Z"
2014-04-01T00:00:00.000Z
我正在尝试 GET
查询,使用 google 的 API 的文档提供的示例作为参考,用于记录 here 的会话如下:
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 中构建日期如下: 从日期时间导入日期时间,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 documentation 中时间戳末尾的毫秒数的信息。我在 google 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”后缀,可以手动去掉“+00:00”,然后添加一个“Z”,但我相信没有必要。
>>> from datetime import datetime, timezone
>>> datetime.now(timezone.utc).isoformat()[:-6] + "Z"
2014-04-01T00:00:00.000Z