Sandip Paul 491984 Ответов: 0

Проблема Google calender API


Я интегрировал Google calendar v3 api в свое приложение mvc и добавляю событие по пользовательской дате и времени.Мое приложение размещено на индийском сервере, а часовой пояс для календаря-это центральный часовой пояс, так как пользователь живет в США.Поэтому, какую бы дату я ни ввел в форму и ни отправил в календарь, она всегда меняет ее на время США.
Пожалуйста, помогите мне

Что я уже пробовал:


var folder = System.Web.HttpContext.Current.Server.MapPath("/App_Data/MyGoogleStorage");
           var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                           new ClientSecrets
                           {

                               ClientId = "xxxxxxxxx-xxxxxxx.apps.googleusercontent.com",
                               ClientSecret = "xxxxxxx",
                           },

                           new[] { CalendarService.Scope.Calendar },
                           "user",

                           CancellationToken.None,
                           new FileDataStore(folder)).Result;

           // Create the service.
           DateTime eventdate = Convert.ToDateTime(bdate);
           int evyear = eventdate.Year;
           int evmonth = eventdate.Month;
           int evday = eventdate.Day;

           DateTime eventtime = Convert.ToDateTime(btime);
           int evhour = eventtime.Hour;
           int evendhour = eventtime.Hour;
           int evmin = eventtime.Minute;
           int evendmin = evmin + 60;

           if (evendmin > 60)
           {
               evendmin = evendmin - 60;
               evendhour = evendhour + 1;
           }
           else if (evendmin == 60)
           {
               evendmin = 00;
               evendhour = evendhour + 1;
           }
           var service = new CalendarService(new BaseClientService.Initializer
           {
               HttpClientInitializer = credential,
               ApplicationName = "ANNA'S RESTAURANT",
           });

           var myEvent = new Event
           {
               Summary = "Name :" + Name + System.Environment.NewLine + "Person : " + pno,
               Description = "Phone No :" + phoneno + System.Environment.NewLine + "Special Request : " + srequest,
               Location = "607 Happy Valley Rd Glasgow , KY",

               Start = new EventDateTime
               {
                   DateTime = new DateTime(evyear, evmonth, evday, evhour, evmin, 0, 0),
                   TimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time").ToString()

               },
               End = new EventDateTime
               {
                   DateTime = new DateTime(evyear, evmonth, evday, evendhour, evendmin, 0, 0),
                   TimeZone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time").ToString()

               },

           };

           var recurringEvent = service.Events.Insert(myEvent, "primary");
           recurringEvent.SendNotifications = true;
           recurringEvent.Execute();

Richard MacCutchan

Вы всегда должны использовать значения UTC для типов даты и времени. Вам нужно только преобразовать их в местное время, когда они отображаются.

0 Ответов