Timestamp-Ressourcen
Vergleich der Programmiersprachen-Zeitstempel
Zeitstempelvergleich der Programmiersprache
Kurzreferenz für Zeitstempeloperationen in gängigen Programmiersprachen.
Aktueller Zeitstempel
| Sprache | Sekunden | Millisekunden | Mikrosekunden |
|---|---|---|---|
| JavaScript | Math.floor(Date.now() / 1000) | Date.now() | performance.now() |
| Python | int(time.time()) | int(time.time() * 1000) | time.time_ns() // 1000 |
| Java | System.currentTimeMillis() / 1000 | System.currentTimeMillis() | Instant.now().getEpochSecond() |
| Los | time.Now().Unix() | time.Now().UnixMilli() | time.Now().UnixMicro() |
| PHP | time() | microtime(true) * 1000 | microtime(true) * 1000000 |
| Rubin | Time.now.to_i | Time.now.to_f * 1000 | Time.now.to_r |
| C# | DateTimeOffset.UtcNow.ToUnixTimeSeconds() | DateTimeOffset.UtcNow.ToUnixTimeMilliseconds() | - |
| Schnell | Date().timeIntervalSince1970 | Int(Date().timeIntervalSince1970 * 1000) | - |
Zeitstempel bis Datum
| Sprache | Code |
|---|---|
| JavaScript | new Date(timestamp * 1000) |
| Python | datetime.fromtimestamp(timestamp) |
| Java | Instant.ofEpochSecond(timestamp) |
| Los | time.Unix(timestamp, 0) |
| PHP | date('Y-m-d H:i:s', $timestamp) |
| Rubin | Time.at(timestamp) |
| C# | DateTimeOffset.FromUnixTimeSeconds(timestamp) |
| Schnell | Date(timeIntervalSince1970: TimeInterval(timestamp)) |
Datum zu Zeitstempel
| Sprache | Code |
|---|---|
| JavaScript | Math.floor(date.getTime() / 1000) |
| Python | int(date.timestamp()) |
| Java | date.toEpochSecond(ZoneOffset.UTC) |
| Los | date.Unix() |
| PHP | strtotime('2024-01-01') |
| Rubin | date.to_i |
| C# | ((DateTimeOffset)date).ToUnixTimeSeconds() |
| Schnell | Int(date.timeIntervalSince1970) |
Formatierung
| Sprache | Code |
|---|---|
| JavaScript | date.toISOString() oder date.toLocaleString() |
| Python | date.strftime('%Y-%m-%d %H:%M:%S') |
| Java | DateTimeFormatter.ISO_DATE_TIME.format(date) |
| Los | date.Format(time.RFC3339) |
| PHP | date('Y-m-d H:i:s', $timestamp) |
| Rubin | date.strftime('%Y-%m-%d %H:%M:%S') |
| C# | date.ToString("yyyy-MM-dd HH:mm:ss") |
| Schnell | dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" |
Zeitzonenbehandlung
| Sprache | UTC | Lokal | Konvertieren |
|---|---|---|---|
| JavaScript | new Date().toISOString() | new Date().toLocaleString() | date.toLocaleString('en-US', {timeZone: 'UTC'}) |
| Python | datetime.utcnow() | datetime.now() | date.astimezone(timezone('UTC')) |
| Java | Instant.now() | LocalDateTime.now() | date.atZone(ZoneId.of("UTC")) |
| Los | time.Now().UTC() | time.Now() | date.In(time.UTC) |
| PHP | gmdate() | date() | date_default_timezone_set('UTC') |
| Rubin | Time.now.utc | Time.now | Time.now.getutc |
| C# | DateTime.UtcNow | DateTime.Now | TimeZoneInfo.ConvertTimeToUtc(date) |
| Schnell | Date() (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
- UTC immer in Datenbanken speichern
- Umrechnung in Ortszeit nur zur Anzeige
- Verwenden Sie ISO 8601 für die API-Serialisierung
- Gehen Sie mit Schaltsekunden vorsichtig um (GPS/TAI vs. UTC)
- Berücksichtigen Sie die für Ihren Anwendungsfall erforderliche Präzision