2009-04-16 10 views
0

Ich sende eine vcal über Mail in Web-Anwendung mit Datum zu universellen Datetime konvertieren. Wenn ich Web-Anwendung lokal (lokale Sevser in Indien) ausführen, bekomme ich korrekte Zeit in meinem Vcal. Aber Live-Anwendung (Server in den USA) dann keine korrekte Zeit mit einem Unterschied von 1 und eine halbe Stunde. Bitte schlagen Sie mir vor.Nicht korrekte Zeit von UniversalDateTime

Code:

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

Antwort

1

Seit IST (Indien Normalzeit) in UTC + 5: 30 und die US-Zeitzonen sind in UTC-4 (Eastern) zu UTC-7 (Pacific), könnten Sie scheinen, anderthalb Stunden frei zu sein (tatsächlich, zehn und eine halbe Stunden aus, aber ignorieren am/pm), wenn der Server in der zentralen Sommerzeit (CDT) läuft.

Ich fand vcalendar bei www.vcalendar.org, die Sie schnell umleitet. Es scheint eine PHP-Anwendung zu sein. Und wenn man sich das PHP-Handbuch anschaut, sieht es so aus, als wäre das H-Format 24-Stunden-Zeit; aber es erfordert ein einzelnes H, nicht ein Doppel H. Das PDF für die Dokumentation auf vcalendar.org ist AWOL (404 - mit der Ausnahme, dass es Sie auf eine nützlichere Seite als nur 404 umleitet, aber es ist immer noch nicht da!).

Vorschlag: Stellen Sie fest, in welcher Zeitzone Ihr Server in den USA läuft (es gibt 4 Hauptzeitzonen und verschiedene Zusatzzonen). Prüfen Sie, ob die Hypothese "1,5 Stunden = 10,5 Stunden Modulo 12" plausibel ist. Und schauen Sie sich die Formate für Datum und Uhrzeit und die Bedeutung von "HH" genau an.

+0

Sein Code sieht für mich wie .NET aus ... –

+0

@bmoeskau: es könnte sein ... heute, gehen zu vcalendar.org leitet Sie auf eine Seite, die besagt, dass eine Reihe von Versionen zur Verfügung stehen, einschließlich einer .NET Ausführung. –