GET请求中的datetime格式是什么?

时间:2017-06-29 11:40:22

标签: gitlab gitlab-api

对GitLab API的一些请求(例如列出合并请求(https://docs.gitlab.com/ee/api/merge_requests.html#list-merge-requests))允许针对此特定示例的datetime类型(created_aftercreated_before参数的URL查询参数)

我似乎无法找到适合datetime param的格式。时间戳(有毫秒和无毫秒)都不起作用,ISO格式也不行2017-06-29T11:00:00.000Z

也许这个查询参数根本不起作用?

4 个答案:

答案 0 :(得分:1)

找到原因:created_beforecreated_after参数虽然在官方API文档中列出和描述,但尚未包含在任何已发布的版本中。

从GitLab版本9.3.5开始,它仍列在unreleased下:

https://github.com/gitlabhq/gitlabhq/blob/master/changelogs/unreleased/12151-add-since-and-until-params-to-issuables.yml

https://github.com/gitlabhq/gitlabhq/commit/9fe6c2b2c2dd92831c93297021b41d6721e4b201

答案 1 :(得分:0)

尝试使用ISO8601时间戳,因此请删除纳秒并包含时区:

2017-06-29T11:00:00+00:00

用于引用ruby DateTime类,因为这个类在Gitlab中使用。

https://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/DateTime.html

Gitlab的合并请求API类:
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/api/merge_requests.rb

答案 2 :(得分:0)

这是适用于我的时间格式(标准ISO-8601):
three_weeks_ago = (datetime.datetime.now(timezone.utc)- timedelta(days=21)).isoformat() . mrs = request(f'/merge_requests?state=merged&created_after={three_weeks_ago}&per_page=100')

答案 3 :(得分:0)

在Gitlab 12.6.4-ee(企业版)中,当URL起作用时,ISO8601日期时间格式(例如“ 2020-02-12T00:08:15Z”和“ 2020-02-12T00:07:15 + 01:00”)可以工作-编码。因此,“ 2020-02-12T00:08:15Z”->“ 2020-02-12T00%3A08%3A15Z”和“ 2020-02-12T00:07:15 + 01:00”->“ 2020-02-12T00 %3A07%3A15%2B01%3A00”。因此,完整的(伪)URL示例将为:https://gitlab.mycompany.com/api/v4/projects/myproject/merge_requests?updated_after=2020-02-12T00%3A07%3A15%2B01%3A00