没有从UniversalDateTime获得正确的时间

时间:2009-04-16 06:33:14

标签: vb.net datetime vcalendar vcal

我通过邮件将vcal发送到web应用程序,并将转换日期时间发送到通用日期时间。 如果我在本地运行Web应用程序(印度的本地sevser),我会在我的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()

1 个答案:

答案 0 :(得分:1)

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

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

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