Google Drive API返回修改时间与网页端不符,求排查原因
问题:Google Drive API获取的文件修改时间与网页显示不一致
我用以下代码获取Google Drive文件的修改时间:
request = service.files().get_media(fileId=file_id) data = service.files().get(fileId=l, fields='*').execute() meta = service.files().get(fileId=l, fields="*", supportsTeamDrives=True).execute() print(meta["modifiedTime"])
打印结果为u'2020-08-02T12:29:14.658Z',但该时间与Google Drive网页界面显示的时间不一致,想知道差异原因,以及我的调用方式是否有误?
解答
- 时区差异是核心问题:API返回的
modifiedTime是UTC标准时间(末尾的Z表示UTC时区),而Google Drive网页显示的是你当前所在的本地时区时间。比如你处于东八区(UTC+8),网页显示的时间会是2020-08-02 20:29:14,和API返回的UTC时间本质是同一个时间点,只是经过了时区转换。 - 调用方式无错误,但可优化:你的代码里重复调用了两次
files().get接口,其实只需要一次带supportsTeamDrives=True的调用就足够,多余的调用会消耗不必要的请求配额。优化后的代码如下:
meta = service.files().get(fileId=file_id, fields="modifiedTime", supportsTeamDrives=True).execute() print(meta["modifiedTime"])
另外注意代码中的变量l应该是file_id的笔误,需要确保变量名一致,避免运行报错。
- 特殊情况排查:如果完成时区转换后时间仍不一致,可能是团队盘(Team Drive)的权限设置或同步延迟导致,但这种情况极少发生,优先排查时区转换是否正确即可。
内容的提问来源于stack exchange,提问作者Joan Venge
相关产品推荐
相关产品推荐

