Analysiere die Zeit mit strptime mit Time.zone

8

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.

%Vor%     
user2434674 09.08.2013, 00:33
quelle

3 Antworten

7

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:

%Vor%     
Andrew Marshall 09.08.2013 01:18
quelle
1

Wenn Sie nur Ruby2.0 betrachten, ist die Zeitbibliothek möglicherweise hilfreich:

%Vor%     
Suicidal Penguin 09.08.2013 02:12
quelle
0

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:

%Vor%     
vjt 19.10.2017 09:42
quelle

Tags und Links