Ich versuche, eine Datetime mit Time-Klasse in Ruby 2.0 zu analysieren. Ich kann nicht herausfinden, wie man Datum analysiert und es in einer bestimmten Zeitzone bekommt. Ich habe Time.zone.parse
verwendet, um ein Datum zu analysieren, bei dem ich zuerst Time.zone
anrufe und es auf eine bestimmte Zeitzone setze. Im folgenden Beispiel habe ich die Zone festgelegt, aber es wirkt sich nicht auf strptime
aus. Ich habe Time.zone.parse(date)
versucht, aber ich kann kein Datum wie das folgende analysieren.
Time.zone
ist kein Teil von Ruby, sondern ein Teil von ActiveSupport (ist in Rails enthalten). Daher weiß strptime
nichts davon Time.zone
überhaupt. Sie können jedoch eine normale Ruby-Zeit mit ActiveSupport :: TimeWithZone konvertieren. http://api.rubyonrails.org/classes/Time.html#method-i-in_time_zone"> in_time_zone
, das standardmäßig den Wert von Time.zone
verwendet:
Wenn Sie nur Ruby2.0 betrachten, ist die Zeitbibliothek möglicherweise hilfreich:
%Vor% strptime
ruft seine Parameter aus der Zeitzeichenfolge ab. Daher muss der Zeitstring Zeitzoneninformationen enthalten.
Wenn Sie Zeitzeichenfolgen in einer bestimmten Zeitzone analysieren, die Zeitzeichenfolgen jedoch nicht eingebettet sind, können Sie Zeitzoneninformationen hinzufügen, bevor Sie die Zeitzeichenfolge an srtptime
übergeben und strptime
anfragen. um den Zeitzonen-Offset mit %z
zu analysieren oder mit %Z
zu benennen.
Kurz gesagt, wenn Sie eine Zeitzeichenfolge 08/26/2013 03:30 PM
haben und in der Zeitzone UTC
geparst werden möchten, hätten Sie:
Tags und Links ruby datetime activesupport