Korrektur der Uhrzeit für die Sommerzeit in rails DateTime.analysieren

Nur das hinzufügen, um die Millionen Fragen über Zeitzonen und Sommerzeit Probleme gibt.

Ich habe ein Formular mit separaten Feldern für Datum und Zeit, die ich kombinieren, um ein DateTime-wie so

start_time = DateTime.parse("#{parse_date(form_date)} #{form_start_time} #{Time.zone}")

Wenn fülle ich mein Formular mit 21 Aug 2012 15:00, dann sind die Werte, die ich sehe, wenn ich laden meine form. Wenn ich dann schau dir meine start_time-Attribut in meinem Modell ist es richtig eingestellt Tue, 21 Aug 2012 15:00:00 EST +10:00.

Das problem, das ich habe tritt auf, wenn ich ein Datum später in diesem Jahr, sobald die Sommerzeit beginnt in (ich bin in Australien). Wenn ich mit 21 Dec 2012 15:00 dann check start_time ich sehe Fri, 21 Dec 2012 16:00:00 EST +11:00.

Meine interpretation des Problems ist, dass das Datum gespeichert wird in meiner aktuellen Zeitzone (+10:00) wie das ist, was ich gesagt habe, DateTime.Parsen zu tun. Jedoch, wenn der Wert zurückgegeben, Schienen auf der Suche auf das Datum und sagt: "hey, es ist Sommerzeit im Dezember' und die Rückkehr der Zeit, in der +11:00 Uhr Zeitzone.

Was ich tun möchte, sagen, DateTime.analysieren, um die Zeit in der +11:00 Zeit-zone, wenn DST in Kraft ist. Klar die Zeit.zone in meinem string nicht erreichen. Gibt es eine einfache Möglichkeit, dies zu tun? Ich kann sehen, Möglichkeiten, es zu tun mit Zeit#dst? aber ich vermute, dass dies zu schaffen, einige wirklich hässlich verworrene code. Ich dachte, es könnte sein, gebaut in der Weise, dass ich bin fehlt.

InformationsquelleAutor brad | 2012-08-21
Schreibe einen Kommentar