Вопрос

Я отправляю vcal по почте в веб-приложении с преобразованием даты и времени в универсальное дату и время.Если я запускаю веб-приложение локально (локальный сервер в Индии), я получаю правильное время в своем vcal.Но если запустить приложение в реальном времени (сервер в США), то не будет получено правильное время с разницей в полтора часа. Пожалуйста, предложите мне.

код:

Dim result As StringBuilder = New StringBuilder()
        result.AppendFormat("BEGIN:VCALENDAR{0}", System.Environment.NewLine)
        result.AppendFormat("BEGIN:VEVENT{0}", System.Environment.NewLine)
        result.AppendFormat("SUMMARY:{0}{1}", subject, System.Environment.NewLine)
        result.AppendFormat("LOCATION:{0}{1}", location, System.Environment.NewLine)
        result.AppendFormat("DTSTART:{0}{1}", startDate.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DTEND:{0}{1}", endDate.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DTSTAMP:{0}{1}", DateTime.Now.ToUniversalTime().ToString("yyyyMMdd\THHmmss\Z"), System.Environment.NewLine)
        result.AppendFormat("DESCRIPTION:{0}{1}", description, System.Environment.NewLine)
        result.AppendFormat("END:VEVENT{0}", System.Environment.NewLine)
        result.AppendFormat("END:VCALENDAR{0}", System.Environment.NewLine)
        Return result.ToString()
Это было полезно?

Решение

Поскольку IST (стандартное время Индии) находится в UTC+5:30, а часовые пояса США — от UTC-4 (восточное) до UTC-7 (Тихоокеанский регион), может показаться, что вы отстаете на полтора часа (на самом деле десять). полуторачасовой перерыв, но игнорируя am/pm), если сервер работает по центральному летнему времени (CDT).

Я нашел vcalendar на www.vcalendar.org который быстро перенаправляет вас.Похоже, это PHP-приложение.Если посмотреть в руководство по PHP, то окажется, что формат H — это 24-часовое время;но для этого требуется одинарная H, а не двойная H.PDF-файл документации на vcalendar.org находится в самоволке (404 — за исключением того, что он перенаправляет вас на более полезную страницу, чем просто 404, но ее все равно там нет!).

Предположение:установите, в каком часовом поясе работает ваш сервер в США (есть 4 основных часовых пояса и несколько вспомогательных).Проверьте, правдоподобна ли гипотеза «1,5 часа = 10,5 часов по модулю 12».И внимательно посмотрите на форматы даты/времени и значение «ЧЧ».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top