Ruby Snippets

Ruby-Unix-Timestamp-Snippets

Ruby-Beispiele zum Holen von Unix-Sekunden, Ableiten von Millisekunden, Umwandeln von Timestamps in Time-Objekte, Formatieren der UTC-Ausgabe und Parsen von Datums-Strings.

Current Unix timestamp (seconds)
Time.now.to_i
Current Unix timestamp (milliseconds)
(Time.now.to_f * 1000).round
Time from Unix timestamp
Time.at(1700000000)
Time in specific timezone
require "time"
Time.at(1700000000).utc.strftime("%Y-%m-%d %H:%M:%S")

# With tzinfo gem:
require "tzinfo"
tz = TZInfo::Timezone.get("America/New_York")
tz.utc_to_local(Time.at(1700000000).utc)
Formatted string
Time.at(1700000000).strftime("%Y-%m-%d %H:%M:%S")
Timestamp from Time
require "time"
Time.parse("2023-11-15T06:13:20Z").to_i

Grundlagen zu Ruby-Zeitstempeln

Rubys Time.now.to_i gibt Unix-Sekunden zurück. Verwende Time.now.to_f, wenn du Sekundenbruchteile brauchst oder Millisekunden für APIs berechnen willst, die JavaScript-artige Zeitstempel erwarten.

Ruby-Time umwandeln und formatieren

Verwende Time.at(timestamp), um aus Unix-Sekunden ein Time-Objekt zu erstellen. Rufe vor dem Formatieren utc auf, wenn du stabile Ausgabe brauchst, die nicht von der lokalen Zeitzone des Rechners abhängt.

Hinweise für den Produktiveinsatz von Ruby

Rubys Time-Methoden sind knapp, aber Zeitzonen-Standards können sich zwischen Laptops, Servern und Hintergrund-Workern unterscheiden. Halte persistierte Zeitstempel in Unix-Sekunden oder UTC-Strings und wende dann die Anwendungszeitzone in der Präsentationsschicht an. Beim Parsen von Nutzereingaben gib den Versatz oder die Zeitzone an, damit Sommerzeitregeln nicht falsch geraten werden.

  • Verwende Time.now.to_i für Unix-Sekunden
  • Verwende (Time.now.to_f * 1000).round für Millisekundenwerte
  • Verwende Time.at(seconds).utc für stabile UTC-Ausgabe
  • Verwende Time.parse nur mit Strings, die eine Zeitzone oder einen Versatz enthalten

FAQ

Gibt Time.now.to_i Millisekunden zurück?
Nein. Time.now.to_i gibt ganze Unix-Sekunden zurück. Verwende Time.now.to_f, wenn du Sekundenbruchteile brauchst oder Millisekunden ableiten möchtest.
Warum utc vor dem Formatieren aufrufen?
utc macht die Ausgabe unabhängig von der lokalen Zeitzone des Rechners. Das ist hilfreich für Logs, API-Payloads und Test-Erwartungen.
Wie überprüfe ich einen Ruby-Zeitstempel?
Verwende Time.at(seconds).utc.iso8601 und vergleiche das Ergebnis mit dem erwarteten UTC-Zeitpunkt, bevor du den Wert in einen Job, eine API oder eine Datenbank schreibst.