Timestamp-Ressourcen

Vergleich der Programmiersprachen-Zeitstempel

Zeitstempelvergleich der Programmiersprache

Kurzreferenz für Zeitstempeloperationen in gängigen Programmiersprachen.

Aktueller Zeitstempel

SpracheSekundenMillisekundenMikrosekunden
JavaScriptMath.floor(Date.now() / 1000)Date.now()performance.now()
Pythonint(time.time())int(time.time() * 1000)time.time_ns() // 1000
JavaSystem.currentTimeMillis() / 1000System.currentTimeMillis()Instant.now().getEpochSecond()
Lostime.Now().Unix()time.Now().UnixMilli()time.Now().UnixMicro()
PHPtime()microtime(true) * 1000microtime(true) * 1000000
RubinTime.now.to_iTime.now.to_f * 1000Time.now.to_r
C#DateTimeOffset.UtcNow.ToUnixTimeSeconds()DateTimeOffset.UtcNow.ToUnixTimeMilliseconds()-
SchnellDate().timeIntervalSince1970Int(Date().timeIntervalSince1970 * 1000)-

Zeitstempel bis Datum

SpracheCode
JavaScriptnew Date(timestamp * 1000)
Pythondatetime.fromtimestamp(timestamp)
JavaInstant.ofEpochSecond(timestamp)
Lostime.Unix(timestamp, 0)
PHPdate('Y-m-d H:i:s', $timestamp)
RubinTime.at(timestamp)
C#DateTimeOffset.FromUnixTimeSeconds(timestamp)
SchnellDate(timeIntervalSince1970: TimeInterval(timestamp))

Datum zu Zeitstempel

SpracheCode
JavaScriptMath.floor(date.getTime() / 1000)
Pythonint(date.timestamp())
Javadate.toEpochSecond(ZoneOffset.UTC)
Losdate.Unix()
PHPstrtotime('2024-01-01')
Rubindate.to_i
C#((DateTimeOffset)date).ToUnixTimeSeconds()
SchnellInt(date.timeIntervalSince1970)

Formatierung

SpracheCode
JavaScriptdate.toISOString() oder date.toLocaleString()
Pythondate.strftime('%Y-%m-%d %H:%M:%S')
JavaDateTimeFormatter.ISO_DATE_TIME.format(date)
Losdate.Format(time.RFC3339)
PHPdate('Y-m-d H:i:s', $timestamp)
Rubindate.strftime('%Y-%m-%d %H:%M:%S')
C#date.ToString("yyyy-MM-dd HH:mm:ss")
SchnelldateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

Zeitzonenbehandlung

SpracheUTCLokalKonvertieren
JavaScriptnew Date().toISOString()new Date().toLocaleString()date.toLocaleString('en-US', {timeZone: 'UTC'})
Pythondatetime.utcnow()datetime.now()date.astimezone(timezone('UTC'))
JavaInstant.now()LocalDateTime.now()date.atZone(ZoneId.of("UTC"))
Lostime.Now().UTC()time.Now()date.In(time.UTC)
PHPgmdate()date()date_default_timezone_set('UTC')
RubinTime.now.utcTime.nowTime.now.getutc
C#DateTime.UtcNowDateTime.NowTimeZoneInfo.ConvertTimeToUtc(date)
SchnellDate() (intern immer UTC)Date()Calendar.current.dateComponents

Hauptunterschiede

Epochenanfang

– Alle Sprachen verwenden Unix-Epoche: 1. Januar 1970 00:00:00 UTC

  • Ausnahme: GPS-Zeit verwendet den 6. Januar 1980
  • TAI verwendet den 1. Januar 1958

Präzision

  • Sekunden: Am häufigsten, 10 Ziffern (bis 2286)
  • Millisekunden: 13 Ziffern, JavaScript-Standard
  • Mikrosekunden: 16 Ziffern
  • Nanosekunden: 19 Ziffern, einige Systeme

Zeitzonenspeicher

  • JavaScript: Keine Zeitzone im Date-Objekt, verwendet die Zeitzone des Browsers
  • Python: Naive vs. bewusste Datetime-Objekte
  • Java: Instant (UTC) vs. ZonedDateTime (mit Zone)
  • Go: Standort, der an das Zeitobjekt angehängt ist
  • Ruby: Das Zeitobjekt enthält einen Zeitzonenversatz
  • C#: DateTimeKind (nicht angegeben, Utc, lokal)
  • Swift: Das Datum ist immer UTC, der Kalender verwaltet Zonen

Best Practices

  1. UTC immer in Datenbanken speichern
  2. Umrechnung in Ortszeit nur zur Anzeige
  3. Verwenden Sie ISO 8601 für die API-Serialisierung
  4. Gehen Sie mit Schaltsekunden vorsichtig um (GPS/TAI vs. UTC)
  5. Berücksichtigen Sie die für Ihren Anwendungsfall erforderliche Präzision

Verwandte Ressourcen