Gelten DateTime-offset auf die Eastern Zeitzone

Ich habe eine Seite, die generiert vCal und iCal-Dateien importieren von Ereignissen in Outlook und iCal. Diese E-mail-clients (Outlook & iCal) nehmen die Termine in UTC-da Sie wissen, dass der Benutzer den offset-und behandelt das setzen in den richtigen Zeiten. Unsere Kunden, für die wir schreiben den code aus den USA, Eastern Zeitzone und so bin ich Ihr Gastgeber ist in der Central time zone (1 Stunde hinter MEZ). Ich möchte die code handle-dies ohne hart-codierten offsets. Mein code derzeit zu bekommen ist, die "DateTime" aus unserem CMS und wandelt UTC-für Outlook/iCal. Das bedeutet, dass die DateTime-Wert aus dem CMS ist relativ zu den hosting-Standort:

//Start Date Time
sb.AppendFormat("DTSTART:{0}\n", thisEvent.StartDate.ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));

Wenn ich diese auf meinem lokalen, es ist alles in Ordnung, da die DateTime in das CMS basiert auf unsere Kunden-Eastern-Zeitzone und so bin ich, so dass der Prozess ist Ost -> UTC -> in Outlook das geht dann UTC -> Osten, und alles ist gut. Wenn ich bereitstellen, um den server in der zentrale, die "DateTime" aus der CMS ist eine Stunde aus Ost. Wie kann ich automatisch das offset aus Ost und fügen Sie ihn vor dem konvertieren auf UTC? Ich müssen natürlich diese zu behandeln, sowohl standard time (EST) und Sommerzeit (MESZ). Ich würde es gerne spielen programmgesteuert ohne hart codierte Werte, so dass es immer korrekt funktioniert, egal in welcher Zeitzone Sie sich befinden. I. e. wenn ich liefern diesen code, um jemanden für die Entwicklung in Indien, sollte es sich automatisch mit Ihrer lokalen server-offset und entsprechend anpassen.

Ich brauche so etwas wo ich mich bewerben versetzt zur östlichen Zeit vor der Umwandlung in UTC:

sb.AppendFormat("DTSTART:{0}\n", thisEvent.StartDate.ApplyEasternOffset().ToUniversalTime().ToString("yyyyMMddTHHmmssZ"));

Sorry, wenn dies ist ein Thema, das diskutiert worden, bevor, ich bin mir nur nicht sicher, von den besten Konditionen zu finden, eine Frage wie diese. Vielen Dank im Voraus.

Dieses problem begann mit dem server ertragreiche lokale Zeitstempel anstelle von UTC. Das wird ein Schmerz in den Arsch für eine lange Zeit, nachdem Sie zu erraten, wo sich der server befindet, bis Sie dieses Problem beheben.

InformationsquelleAutor Mark Ursino | 2011-04-04

Schreibe einen Kommentar