[RUBY] In Time.strptime ist% j (Gesamtdatum des Jahres)

Ich musste den Code eines anderen pflegen, und als ich dem Code folgte, war es mühsam, das Datum "% j" in "UNIX-Zeit" zu konvertieren.

Dann, als ich angewidert war und nach "Rubin aber Strptime" suchte, Bingo !!

Es ist ein Problem aufgetreten

Vor dem Austausch testen.

Führen Sie den folgenden Code aus

$ ruby -e 'require "time" ; p Time.strptime("2003,070,12:21:51 JST", "%Y,%j,%H:%M:%S %z").to_i'
1041391311
# ↑ 2003/01/01 12:21:51 JST

Es ist ein Problem aufgetreten.

Eh? % J Kannst du es interpretieren?

Ich konnte keine Antwort bekommen, selbst wenn ich Gugu ansah [^ 1]

[^ 1]: Es ist etwas Besonderes, zuerst% j zu verwenden ...

Probieren Sie verschiedene Dinge aus ...

Fazit

Die ".strptime" der "Time" -Klasse (Modul?) Des alten "Rubins" scheint "% j" nicht zu interpretieren [^ 2]

Bei der Überprüfung war 2.7.1p83 OK [^ 3]

[^ 2]: In Bezug auf das Ersetzen von Code gibt es verschiedene Probleme bei der Verwendung von "DateTime", also letztendlich in Form der Einbettung des selbst erstellten Codes, der zur Überprüfung erstellt wurde.

[^ 3]: 2.6.3p62 ist OK.

Überprüfung

Führen Sie den folgenden Code mit "1.9.2p290", "2.0.0p481" bzw. "2.7.1p83" aus.

test.rb


require 'date'
require 'time'

#Selbstgemachte Funktion zur Steuerung
def manu(t)
  arr = t.split(/[,: ]/).map(&:to_i)
  Time.mktime(arr[0],1,1,arr[2],arr[3],arr[4]) + ( arr[1] - 1) * 24 * 60 * 60
end

str = "2003,070,12:21:51 JST"
# DateTime.Das Ergebnis der Strptime
p DateTime.strptime(str, "%Y,%j,%H:%M:%S %z").strftime("%s").to_i
#Ergebnis der selbstgemachten Funktion
p ( manu str ).to_i
# Timme.Das Ergebnis der Strptime
p Time.strptime(str, "%Y,%j,%H:%M:%S %z").to_i

In 1.9.2 und 2.0.0 interpretiert Time.strptime% jnicht.DateTime.strptime` interpretiert es.

shell-session:1.9.2p290,2.0.0p481


$ ruby test.rb
1047352911
1047352911
1041391311  # <= 2003/01/01 12:21:51 JST

Andererseits interpretiert 2.7.1 auch Time.strptime.

shell-session:2.7.1p83


$ ruby test.rb
1047352911
1047352911
1047352911

Wenn es so etwas wie die "Rubin" -Version von "Delta" gibt, wäre es ein Schuss, wenn Sie es lesen, aber diese Leidenschaft entsteht nicht ...

Recommended Posts

In Time.strptime ist% j (Gesamtdatum des Jahres)
Wenn der Monat des Datums erfasst wird, verschiebt sich der Januar
Wurde im Basisjahr der Java-Kalenderwoche durchgeführt
Was ist die Darstellung von Domänenwissen im [DDD] -Modell?
'% 02d' Was ist der% von% 2?
Das Designkonzept der Datums- und Uhrzeit-API von Java ist interessant
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Was ist @Override oder @SuppressWarnings ("SleepWhileInLoop") vor der Funktion? ?? ??
[Referenzbeispiel] Das Urheberrecht wird im Kommentar des Quellcodes beschrieben.
Reihenfolge der Verarbeitung im Programm
Code des Teils, in dem server.servlet.session.timeout in spring.session.timeout im spring-boot2-System festgelegt ist
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
Fehler, wenn das in SpringWebFlux verwendete Mitglied der Entity-Klasse endgültig ist
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
Holen Sie sich das Ergebnis von POST in Java
Spring Autowired wird im Konstruktor geschrieben
Was ist ein Test? ・ Über die Wichtigkeit eines Tests
Die Identität der Schienenparameter [: id]
Was ist die Hauptmethode in Java?
Wie ist die Datenstruktur von ActionText?
So erhalten Sie das Datum mit Java
Die Geschichte des Schreibens von Java in Emacs
Schreiben Sie die Bewegung von Rakefile in das Runbook
Im Thema "Gesamtkonzentration" wird "Verwendung von Docker" für den virtuellen Mameko zusammengefasst, der in mir schläft.
In Spring-Security ist die Weiterleitungs-URL meines Anmeldebildschirms falsch und die Anmeldung schlägt fehl.
[Java] Wo befindet sich die Implementierungsklasse der Annotation, die in BeanValidation vorhanden ist?
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
Rufen Sie den ersten Wochentag im aktuellen Gebietsschema ab (welcher Tag ist heute?)
Ob das Gesamtprodukt der ersten n Primzahlen plus 1 eine Primzahl ist
Ist es Mainstream, das schließende Tag des <P> -Tags nicht in Javadoc zu schreiben?
[Java] Tag ab Datum berechnen (Kalenderklasse nicht verwenden)
Korrespondenz des Teils, in dem die Authentifizierung # getDetails im Komponententest der Federsicherheit durchgeführt wird
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
Was ist JSP? ~ Lassen Sie uns die Grundlagen von JSP kennen !! ~
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
Die Geschichte eines gewöhnlichen Othello in Java
Der ActiveSupport-Unterstrich ist nicht die inverse Konvertierung von camelize
Über die Idee anonymer Klassen in Java
Die Reihenfolge der Java-Methodenmodifikatoren ist festgelegt
Die Ruby-Version wird in der .rbenv / version-Datei verwaltet
Der in Java 10 eingeführte Schnittpunkttyp ist erstaunlich (?)
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
Spüren Sie den Lauf der Zeit auch in Java
Das Datum und die Uhrzeit von java8 wurden aktualisiert
Der offizielle Name von Spring MVC ist Spring Web MVC
[Java] In der Ausgabe wird etwas als "-0.0" angezeigt
Importieren Sie Dateien derselben Hierarchie in Java
Wenn das Projekt nicht in Eclipse angezeigt wird
Ebean.update () wird im geerbten Modell nicht ausgeführt.