0

我通过 web 应用程序中的邮件发送一个 vcal,并将日期时间转换为通用日期时间。如果我在本地运行 Web 应用程序(印度的本地服务器),我会在我的 vcal 中获得正确的时间。但是实时运行应用程序(美国的服务器)然后没有得到正确的时间,相差 1 个半小时。请建议我。

代码 :

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()
4

1 回答 1

1

由于 IST(印度标准时间)位于 UTC+5:30,而美国时区位于 UTC-4(东部)到 UTC-7(太平洋),您可能会休息一个半小时(实际上是十如果服务器在中央夏令时 (CDT) 时间运行,则休息半小时但忽略上午/下午)。

我在 www.vcalendar.org 找到了 vcalendar,会迅速重定向您。它似乎是一个 PHP 应用程序。并且查看PHP手册,似乎H格式是24小时制;但它需要一个 H,而不是双 H。 vcalendar.org 上的文档 PDF 是 AWOL(404 - 除了它会将您重定向到比简单的 404 更有用的页面,但它仍然不存在!)。

建议:确定您的服务器在美国运行的时区(有 4 个主要时区,以及各种辅助时区)。检查“1.5 小时 = 10.5 小时模 12”假设是否合理。并仔细研究日期/时间格式和“HH”的含义。

于 2009-05-20T05:38:23.850 回答