我正在尝试使用 Outlook 365 API 创建一日全天事件。为此,我以 UTC 格式指定开始和结束时间,然后按照文档中的说明指示 StartTimeZone 和 EndTimeZone :
{
Start: '2015-07-14T23:00:00.000Z',
End: '2015-07-15T23:00:00.000Z',
StartTimeZone: 'W. Central Africa Standard Time',
EndTimeZone: 'W. Central Africa Standard Time',
ShowAs: 'Free',
IsAllDay: true,
Body: {
ContentType: 'HTML',
Content: '<a href="http://localhost:3000/todos/MDckAk8b2nxvv4hoE">To-do due date</a>'
},
Subject : 'test 74'
}
现在,这是我的问题:
使用字符串来定义时区是不方便且不一致的。伦敦在冬季使用 GMT,但在夏季使用 GMT+1。结果我必须使用'W. 中部非洲标准时间在夏季让我的请求被 API 接受,这令人困惑。仅使用这种格式定义时间,没有提及时区:2015-07-14T00:00:00+/-XX:00 描述午夜,即 7 月 14 日开始的时间为 GMT+/-XX 的区域:00 对我来说是明确的和理想的,但是 API 拒绝使用 IsAllDay: true 选项拒绝这种日期格式,说明全天事件应该在午夜开始和结束(如果没有给出 StartTimeZone 和 EndTimeZone)。
某些时区根本不适用于doc中给出的 GMT 偏移量,即使时间和时区对应。这些区域根本不适用于其 GMT 偏移量:阿拉斯加标准时间、太平洋标准时间、大西洋中部标准时间。这是一个失败的查询示例('Mid-Atlantic Standard Time',GMT 偏移量 -2):
{ 开始:'2015-07-15T02:00:00.000Z',结束:'2015-07-16T02:00:00.000Z',StartTimeZone:'中大西洋标准时间',EndTimeZone:'中大西洋标准时间' , ShowAs: 'Free', IsAllDay: true, Body: { ContentType: 'HTML', Content: ' To-do due date ' }, Subject : 'test 75' } 它的 GMT 偏移量为 -1(开始: '2015-07-15T01:00:00.000')。如何在 GMT-2 中为我的用户做些什么?
文档中的多个字符串可以描述相同的 GMT 偏移量。例如,“山地标准时间”和“美国山地标准时间”都描述了 GMT-07:00,但只有我对“美国山地标准时间”的查询有效。一些时间偏移最多可以有 5 个不同的字符串!(如 GMT+01:00)选择哪一个?
现在,我正在选择一个基于 GMT 偏移量的 TimeZone 字符串(如果存在的话!)。如果我将时钟设置为伦敦当前时间,我将使用'W。StartTimeZone 和 EndTimeZone 的中非标准时间。
有没有办法不使用这些字符串?或者有人可以解释我如何正确选择它们吗?我完全迷失在日期翻译中!:)