Guide

Zeitstempel-zu-ISO-8601-Konverter (Sekunden, Millis, Nanos)

Warum diese Seite

Zeitstempel erhalten Sie häufig in Sekunden (10 Ziffern), Millisekunden (13), Mikrosekunden (16) oder Nanosekunden (19). Auf dieser Seite erhalten Sie Regeln aus einer Hand, versandfertige Snippets und CTAs für den vollständigen Konverter, sodass Sie jede Epoche in ISO 8601 / RFC 3339 umwandeln können, ohne die Präzision zu erraten.

Schnellstart (MVP-Flow)

  1. Fügen Sie den Zeitstempel ein (wir erkennen Länge und Genauigkeit automatisch).
  2. Wählen Sie die Zeitzone: UTC oder einen benutzerdefinierten Offset (z. B. UTC+08:00).
  3. Holen Sie sich die ISO 8601/RFC 3339-Ausgabe und kopieren Sie sie dann mit einem Klick.
  4. Muss eine Einbettung erfolgen? Kopieren Sie unten einen Sprachausschnitt.

Probieren Sie das interaktive Tool aus: Timestamp → ISO Converter und Format Builder.

Eingaberegeln und Validierung

  • Längenerkennung: 10=Sekunden, 13=ms, 16=µs, 19=ns.
  • Erlaubte Zeichen: nur Ziffern; Leerzeichen und Buchstaben ablehnen.
  • Bereich: muss innerhalb plattformsicherer Grenzen liegen (überprüfen Sie 32-Bit vs. 64-Bit; siehe FAQ).
  • Zeitzone: Standard-UTC; benutzerdefinierte Offsets wie +08:00, -05:30.
  • DST: Die Ausgabe verwendet Offset-fähiges ISO 8601; UTC vermeidet Sommerzeitüberraschungen.

Codeausschnitte

JavaScript / Node.js

const detectPrecision = (raw) => {
  const len = raw.length;
  if (len === 10) return { value: Number(raw) * 1000, unit: "ms" };
  if (len === 13) return { value: Number(raw), unit: "ms" };
  if (len === 16) return { value: Number(raw) / 1000, unit: "ms" }; // µs → ms
  if (len === 19) return { value: Number(raw) / 1_000_000, unit: "ms" }; // ns → ms
  throw new Error("Invalid length");
};

const toIso = (raw, tz = "UTC") => {
  const { value } = detectPrecision(raw);
  // If you need a fixed offset, use luxon or temporal; here we show UTC
  return new Date(value).toISOString(); // RFC 3339 compliant
};

console.log(toIso("1704067200"));      // 10 digits -> seconds
console.log(toIso("1704067200000"));   // 13 digits -> milliseconds

Python

from datetime import datetime, timezone, timedelta

def to_iso(raw: str, offset_minutes: int = 0) -> str:
    length = len(raw)
    if length == 10:
        ts = int(raw)
    elif length == 13:
        ts = int(raw) / 1000
    elif length == 16:
        ts = int(raw) / 1_000_000
    elif length == 19:
        ts = int(raw) / 1_000_000_000
    else:
        raise ValueError("Invalid length")

    tz = timezone(timedelta(minutes=offset_minutes))
    return datetime.fromtimestamp(ts, tz=tz).isoformat()

print(to_iso("1704067200", 0))     # UTC
print(to_iso("1704067200000", 480)) # UTC+08:00

Gehen

package main

import (
	"fmt"
	"time"
)

func parseEpoch(raw string) (time.Time, error) {
	switch len(raw) {
	case 10:
		sec, _ := time.ParseInt(raw, 10, 64)
		return time.Unix(sec, 0).UTC(), nil
	case 13:
		ms, _ := time.ParseInt(raw, 10, 64)
		return time.Unix(0, ms*int64(time.Millisecond)).UTC(), nil
	case 16:
		us, _ := time.ParseInt(raw, 10, 64)
		return time.Unix(0, us*int64(time.Microsecond)).UTC(), nil
	case 19:
		ns, _ := time.ParseInt(raw, 10, 64)
		return time.Unix(0, ns).UTC(), nil
	default:
		return time.Time{}, fmt.Errorf("invalid length")
	}
}

func main() {
	t, err := parseEpoch("1704067200000")
	if err != nil {
		panic(err)
	}
	fmt.Println(t.Format(time.RFC3339))
}

Häufige Fallstricke

  • Falsche Genauigkeit: 13-stellige JS-Zeitstempel werden als Sekunden behandelt = großes Datum in der Zukunft.
  • Fehlender Offset: Lokales Parsen ohne Angabe der Zeitzone ergibt die maschinenlokale Zeit.
  • DST-Kanten: Wenn Sie die Ortszeit anzeigen müssen, wählen Sie eine echte IANA-Zone (z. B. America/New_York) anstelle eines festen Offsets.
  • Überlauf: 32-Bit-Systeme werden nach 2038 für Zeitstempel der zweiten Ebene nicht mehr funktionieren; bevorzuge 64-bit.

FAQ

  • F: Sekunden vs. Millisekunden – wie erkenne ich das?
    A: Ziffernlänge prüfen; Wenn Sie sich nicht sicher sind, führen Sie beide aus und prüfen Sie, welches Datum in einem plausiblen Fenster liegt.
  • F: Erfordert ISO 8601 Z?
    A: Z bedeutet UTC. Jeder Offset wie +08:00 ist auch gültig nach ISO 8601 / RFC 3339.
  • F: Kann ich eine Stapelkonvertierung durchführen?
    A: Verwenden Sie Batch Timestamp Converter.

Verwandte Tools und Anleitungen