必发 API 输出时区有时会关闭



我正在通过必发API下注,注意到一些非常奇怪的事情。对于某些事件,市场和事件结果的时间都有所不同。

我的帐户日期和时间设置为欧洲/伦敦。这并不重要,API 无论如何都会输出它想要的任何区域,显然是随机的(有时是格林威治标准时间有时伦敦或任何其他时区,但 ISO 时间戳不包括 +0100 或任何格林威治标准时间偏移量(,尽管我的帐户设置为欧盟/伦敦。

例如,让我们以这个事件为例 苏佩坦/延雪平索德拉 v 瓦尔纳莫

API 输出为:

{"event"=>{"id"=>"28836884", 
"name"=>"Jonkopings Sodra v Varnamo", "countryCode"=>"SE", 
"timezone"=>"GMT", "openDate"=>"2018-08-13T18:00:00.000Z"
}, "marketCount"=>2}

然而,他们的网站说该活动于格林威治标准时间 17:00/伦敦 18:00(现在的格林威治标准时间+1(开始。

这样的例子数以百计。无法从Betfair支持中获得任何信息,他们需要几天/几周的时间来回复,当他们这样做时,他们只是发送一些罐头消息。

以前有人见过这个问题吗?或者也许我错过了什么?

后来编辑:我不得不转储他们所有的市场数据才能得出这个结论:当他们的 API 说时区是 GMT 时,事件实际上是在伦敦,所以现在 GMT+1,而对于其他所有时区(欧盟/伦敦、珀斯、美国......(,时间实际上是格林威治标准时间。不知道这是怎么回事。仍在调查中。

必发返回的所有时间都是UTC格式 - 这就是API的工作方式。它们还提供可能正确也可能不正确的时区。使用时区作为事件的本地时间的指示。但是,时区非常"命中和错过",所以不要依赖它们是正确的。事实上,随着时间的推移,您会注意到必发市场上非定价信息的大量"数据错误"。事情就是这样。所以不要指望他们会修复错误

Event.openDate被记录为">事件的预定开始日期和时间。默认情况下,这是欧洲/伦敦(GMT("而Event.timezone被定义为">事件发生的时区"。

因此,从某种意义上说,API 输出中的openDate是正确的,因为它显示 18:00。但是,这是不正确的,因为它包含祖鲁语"Z"后缀,表示GMT/UTC。在timezone字段中包含"GMT":a(是错误的;和 b( 只是为了混淆事情,恕我直言。

相反,我开始使用MarketCatalogue.marketStartTime定义为">这个市场开始的时间......",这与openDate并不完全相同,但是,如果它们会有所不同,通常在必发上,你更感兴趣的是市场何时进入比赛,而不是实际比赛/比赛/游戏开始时。

我用来验证此方法的事件似乎以这种方式更好地工作。请记住,英国从 10 月 27 日的 BST 移至 10 月 28 日的 GMT,从 API 我收到这些MarketCatalogue.marketStartTime

利物浦vs卡迪夫:"2018-10-27 T 14:00:00.000Z"[正确:格林威治标准时间14:00是英国夏令时15:00]

F1墨西哥大奖赛[排位赛]:"2018-10-27 T18:00:00.000Z"[正确:18:00 BST为19:00 GMT]

伯恩利vs切尔西:"2018-10-28 T 13:30:00.000Z" [正确:格林威治标准时间13:30为格林威治标准时间13:30]

最新更新