【问题标题】:GoogleDrive date format?谷歌云端硬盘日期格式?
【发布时间】:2013-07-13 12:28:52
【问题描述】:

我正在尝试同步文件,但驱动器抱怨日期格式。它在文档中说它使用 RFC 3339 日期格式,但这是我在传递一个有效的 ISO RFC 3339 兼容日期时遇到的错误:

<HttpError 400 when requesting https://www.googleapis.com/drive/v2/files?alt=json returned "Invalid value for: Invalid format: "2013-06-13T20:19:24.000001" is too short">

包含日期,我人为地将其设置为 1 微秒,因为我最初认为 Google 云端硬盘对微秒不存在持怀疑态度。但是,无论微秒是否存在,仍然会出现相同的错误。我还尝试设置一个 UTC 时区,它附加了 +00:00。但随后谷歌抱怨存在时区偏移。

有人知道 Google 期望 RFC 3339 日期格式是什么样的吗?

更新:我想我会展示其他格式示例:

<HttpError 400 when requesting https://www.googleapis.com/drive/v2/files?alt=json returned "Invalid value for: Invalid format: "2013-06-13T20:19:24" is too short">

<HttpError 400 when requesting https://www.googleapis.com/drive/v2/files?alt=json returned "Invalid value for: Invalid format: "2013-06-13T20:19:24+00:00" is malformed at "+00:00"">

【问题讨论】:

    标签: python datetime google-drive-api rfc3339


    【解决方案1】:

    使用任何 RFC 3339 表示,但避免将 : 作为秒的分隔符。请改用.

    2013-07-13T17:08:57.52Z2013-07-13T17:08:57.52-00:00 是工作示例。

    【讨论】:

    • 这看起来像一个错误,我们应该允许T17:08:57:00,尽管我们不允许。
    • rfc 3339 is clear: . 是第二个分隔符的唯一选项。
    【解决方案2】:

    我没有尝试过的一种日期格式刚刚奏效:

    2013-06-13T20:19:24.000001+00:00
    

    【讨论】:

    • foo must be an RFC 3999 date-time 列出的第一个常见错误是忘记时区信息(就像您所做的那样)。
    • 我最初确实提供了它,但谷歌抱怨它,所以我把它拿出来了。似乎微秒和 tzinfo 都是必需的。奇怪的是 isoformat() 方法在零时省略了微秒。如果 RFC 3339 需要微秒,为什么要省略它们?
    【解决方案3】:

    以下是 Internet 日期/时间格式的一些 RFC 3339 示例:

    • 1985-04-12T23:20:50.52Z
    • 1996-12-19T16:39:57-08:00
    • 1990-12-31T23:59:60Z
    • 1990-12-31T15:59:60-08:00
    • 1937-01-01T12:00:27.87+00:20

    RFC3339

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多