Я работаю над приложением Open Source, чтобы синхронизировать календари между Google и Outlook. Некоторые пользователи сообщили о некотором странном поведении для повторных встреч с датой начала года. Ниже приведен пример кода, все утверждения проходят. Мой вопрос в том, почему для назначения, начиная с 1970-10-14T08: 00: 00.000Z, час сдвигается API до 09: 00: 00 + 01: 00, и если я сдвигаю дату начала до 2000 года, она сдвигается на 10:00:00 +02: 00? Когда я проверить, как выглядит оба события в Google они начинают на разных часов, и, по моему мнению, должны начать в тот же час (как только год был изменен)Повторяющиеся ежегодные встречи, созданные с использованием Google API
var e1 = new Google.Apis.Calendar.v3.Data.Event();
e1.Summary = "Birthday1";
e1.Start = new EventDateTime();
e1.End = new EventDateTime();
e1.Start.DateTime = new DateTime(1970, 10, 14, 10, 0, 0);
e1.End.DateTime = new DateTime(1970, 10, 14, 11, 0, 0);
e1.Start.TimeZone = "Europe/Warsaw";
e1.End.TimeZone = "Europe/Warsaw";
e1.Recurrence = new List<String>();
e1.Recurrence.Add("RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=10");
Assert.AreEqual("1970-10-14T08:00:00.000Z", e1.Start.DateTimeRaw);
var c1 = service.Insert(e1, primaryCalendar.Id).Execute();
Assert.AreEqual("1970-10-14T09:00:00+01:00", c1.Start.DateTimeRaw); // 09:00:00+01:00
var e2 = new Google.Apis.Calendar.v3.Data.Event();
e2.Summary = "Birthday2";
e2.Start = new EventDateTime();
e2.End = new EventDateTime();
e2.Start.DateTime = new DateTime(2000, 10, 14, 10, 0, 0);
e2.End.DateTime = new DateTime(2000, 10, 14, 11, 0, 0);
e2.Start.TimeZone = "Europe/Warsaw";
e2.End.TimeZone = "Europe/Warsaw";
e2.Recurrence = new List<String>();
e2.Recurrence.Add("RRULE:FREQ=YEARLY;BYMONTHDAY=14;BYMONTH=10");
Assert.AreEqual("2000-10-14T08:00:00.000Z", e2.Start.DateTimeRaw);
var c2 = service.Insert(e2, primaryCalendar.Id).Execute();
Assert.AreEqual("2000-10-14T10:00:00+02:00", c2.Start.DateTimeRaw); //10:00:00+02:00
И я хотел бы знать, что мне нужно сделать правильно ли сохранить старые повторяющиеся встречи? Должен ли я иметь отдельную логику, которая зависит от года?
Большое спасибо за помощь!
Хотите протестировать его, используя вместо этого январь. Мне интересно, если это проблема с летним временем. – DaImTo