1

我正在通过 Betfair API 下注,并注意到一些非常奇怪的事情。对于某些事件,市场和事件结果的时间都是关闭的。

我的帐户日期和时间设置为欧洲/伦敦。没关系,API 无论如何都会输出它想要的任何区域,显然是随机的(有时是 GMT 其他时间伦敦或任何其他时区,但 ISO 时间戳不包括 +0100 或任何 GMT 偏移量),尽管事实上我的帐户设置为欧盟/伦敦。

例如,让我们看一下这个事件 Superettan / Jonkopings Sodra v Varnamo

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)开始。

这样的例子有数百个。无法从必发支持中得到任何东西,他们需要几天/几周的时间来回复,当他们回复时,他们只是发送一些罐头信息。

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

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

4

2 回答 2

1

Event.openDate记录为“事件的预定开始日期和时间。默认情况下这是欧洲/伦敦 (GMT) ”,而Event.timezone定义为“事件发生的 [the] timezone。

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

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

我用来验证这种方法的事件似乎以这种方式工作得更好。请记住,英国从 10 月 27 日的英国夏令时转移到 10 月 28 日的格林威治标准时间,从 API 我收到以下信息MarketCatalogue.marketStartTime

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

F1 墨西哥大奖赛 [排位赛]:“2018-10-27 T 18:00 : 00.000Z[正确:英国夏令时 18:00 是格林威治标准时间 19:00]

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

于 2018-10-23T19:49:18.423 回答
0

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

于 2019-02-17T05:13:49.270 回答