Τι είναι αυτό το εργαλείο;
Ένα Unix timestamp (γνωστό και ως epoch time) είναι ο αριθμός των δευτερολέπτων που έχουν περάσει από την 1η Ιανουαρίου 1970, 00:00:00 UTC. Είναι ο τυπικός τρόπος με τον οποίο οι υπολογιστές αποθηκεύουν χρονικές στιγμές: βάσεις δεδομένων, αρχεία log, API και γλώσσες προγραμματισμού το χρησιμοποιούν όλα επειδή είναι ένας μοναδικός, χωρίς ασάφειες αριθμός, χωρίς σύγχυση ζώνης ώρας.
Υπάρχουν δύο εκδοχές: δευτερόλεπτα (10 ψηφία σήμερα, π.χ. 1720500000) και χιλιοστά του δευτερολέπτου (13 ψηφία, χρησιμοποιούνται από JavaScript και Java). Αυτό το εργαλείο ανιχνεύει αυτόματα ποιο από τα δύο επικολλήσατε.
Γιατί να το χρησιμοποιήσετε;
- Διαβάστε timestamps από logs, εγγραφές βάσεων δεδομένων και απαντήσεις API ακαριαία.
- Αυτόματη ανίχνευση δευτερολέπτων έναντι χιλιοστών — χωρίς μαντεψιά.
- Δείχνει τοπική ώρα, UTC, ISO 8601 και σχετικό χρόνο ("πριν 3 ώρες") μαζί.
- Μετατροπή και προς τις δύο κατευθύνσεις: timestamp → ημερομηνία και ημερομηνία → timestamp.
- Ζωντανό ρολόι τρέχοντος epoch για γρήγορη αναφορά.
Πώς χρησιμοποιείται
- Για αποκωδικοποίηση: επικολλήστε ένα timestamp (όπως 1720500000) στο αριστερό πλαίσιο και κάντε κλικ στο "Μετατροπή".
- Διαβάστε το αποτέλεσμα στην τοπική σας ζώνη ώρας, UTC, ISO 8601 και ως σχετικό χρόνο.
- Για κωδικοποίηση: επιλέξτε μια ημερομηνία και ώρα στο δεξί πλαίσιο και κάντε κλικ στο "Μετατροπή" για να πάρετε το timestamp της σε δευτερόλεπτα και χιλιοστά.
- Χρησιμοποιήστε το ζωντανό ρολόι στην κορυφή όταν χρειάζεστε απλώς το τρέχον timestamp.
Παράδειγμα
Είσοδος
1720500000Έξοδος
Τοπική ώρα: 9/7/2024, 1:20:00 μμ
Ώρα UTC: Τρί, 09 Ιουλ 2024 05:20:00 GMT
ISO 8601: 2024-07-09T05:20:00.000ZΜια τιμή με 10 ψηφία αντιμετωπίζεται ως δευτερόλεπτα· μια τιμή με 13 ψηφία ως χιλιοστά του δευτερολέπτου.
Πρακτικές συμβουλές
- Αποσφαλμάτωση σφαλμάτων "λάθος ώρας": το 90% είναι προβλήματα εμφάνισης ζώνης ώρας, όχι λανθασμένα timestamps. Συγκρίνετε τη γραμμή UTC με τα logs του server σας (οι servers συνήθως καταγράφουν σε UTC) πριν αγγίξετε οποιονδήποτε κώδικα.
- Μια ημερομηνία που πέφτει ακριβώς στην 1970-01-01 σημαίνει ότι το timestamp ήταν 0 ή έλειπε — κλασικό σύμπτωμα κενής τιμής, όχι πραγματική ημερομηνία.
- Μια ημερομηνία γύρω στο 1970 συν λίγες μέρες συνήθως σημαίνει ότι τα δευτερόλεπτα ερμηνεύτηκαν κάπου ως χιλιοστά· μια ημερομηνία στο έτος 56.000+ σημαίνει το αντίστροφο.
- Σε υπολογιστικά φύλλα: το Excel μετράει ημέρες από το 1900, όχι δευτερόλεπτα από το 1970. Μετατρέψτε με =(A1/86400)+DATE(1970,1,1) για timestamp σε δευτερόλεπτα.
Πραγματικά σενάρια χρήσης
Πού δημιουργούν προβλήματα τα timestamps στην πράξη: ανάγνωση πεδίων λήξης σε JWTs και API tokens (exp/iat είναι Unix δευτερόλεπτα), συσχέτιση της ώρας αναφοράς σφάλματος ενός χρήστη με γραμμές log του server, ρύθμιση TTL cache και παραθύρων cron, και έλεγχος αν ένα πιστοποιητικό ή token έχει πραγματικά λήξει. Η γραμμή σχετικού χρόνου ("πριν 3 ώρες") είναι ο πιο γρήγορος έλεγχος λογικής για όλα αυτά.
Η αποσφαλμάτωση JWT είναι αρκετά συχνή ώστε να αξίζει να αναλυθεί: αποκωδικοποιήστε το payload του token με το εργαλείο Base64, μετά επικολλήστε την τιμή exp εδώ — άμεση απάντηση στο "έχει λήξει αυτό το token και κατά πόσο".
Γιατί ο Unix χρόνος σχεδιάστηκε έτσι
Η αποθήκευση ενός μοναδικού αυξανόμενου αριθμού από ένα σταθερό epoch (αντί για δομή έτους/μήνα/ημέρας/ώρας) ήταν σκόπιμη επιλογή απλότητας: δύο timestamps μπορούν να συγκριθούν ή να αφαιρεθούν με απλή αριθμητική, χωρίς λογική ημερολογίου, γι' αυτό οι βάσεις δεδομένων, οι μορφές log, και σχεδόν κάθε εσωτερική αναπαράσταση ημερομηνίας γλώσσας προγραμματισμού βασίζονται σε αυτό. Το κόστος αυτής της απλότητας είναι ακριβώς αυτό που το εργαλείο υπάρχει για να εξομαλύνει — οι άνθρωποι δεν σκέφτονται σε δευτερόλεπτα-από-το-1970, οπότε κάθε timestamp χρειάζεται μετάφραση πίσω σε ημερολογιακή ημερομηνία πριν αποκτήσει νόημα για κάποιον που το διαβάζει, και αυτή η μετάφραση πρέπει να λαμβάνει υπόψη ζώνη ώρας, ακρίβεια (δευτερόλεπτα έναντι χιλιοστών) και μορφή εμφάνισης ταυτόχρονα.
→ Κωδικοποιητής / Αποκωδικοποιητής Base64 · Υπολογιστής Ηλικίας
Συχνές ερωτήσεις
Πώς ξέρει το εργαλείο αν το timestamp μου είναι σε δευτερόλεπτα ή χιλιοστά;
Από το μέγεθος. Τιμές 1.000.000.000.000 (1e12) ή μεγαλύτερες αντιμετωπίζονται ως χιλιοστά· μικρότερες τιμές ως δευτερόλεπτα. Οι τρέχουσες ημερομηνίες είναι περίπου 1,7 δισεκατομμύρια σε δευτερόλεπτα και περίπου 1.700 δισεκατομμύρια σε χιλιοστά, οπότε τα δύο εύρη δεν επικαλύπτονται για ρεαλιστικές ημερομηνίες.
Γιατί το timestamp μου δείχνει διαφορετική ώρα από αυτή που περιμένω;
Ζώνες ώρας. Ένα timestamp είναι πάντα βασισμένο σε UTC· η γραμμή "τοπική ώρα" το μετατρέπει στη ζώνη ώρας της συσκευής σας. Συγκρίνετε τη γραμμή UTC με αυτό που καταγράφει το σύστημα-πηγή σας — πολλοί servers καταγράφουν σε UTC.
Τι είναι το πρόβλημα του έτους 2038;
Συστήματα που αποθηκεύουν timestamps ως προσημασμένους ακέραιους 32-bit υπερχειλίζουν στις 19 Ιανουαρίου 2038. Τα σύγχρονα συστήματα χρησιμοποιούν ακέραιους 64-bit και δεν επηρεάζονται. Αυτό το εργαλείο χρησιμοποιεί αριθμούς JavaScript, που χειρίζονται ημερομηνίες πολύ πέρα από το 2038.
Μπορώ να μετατρέψω αρνητικά timestamps;
Ναι. Τα αρνητικά timestamps αντιπροσωπεύουν ημερομηνίες πριν την 1η Ιανουαρίου 1970 — για παράδειγμα, το -86400 είναι 31 Δεκεμβρίου 1969.
Το epoch περιλαμβάνει δίσεκτα δευτερόλεπτα;
Όχι. Ο Unix χρόνος θεωρεί ότι κάθε ημέρα έχει ακριβώς 86.400 δευτερόλεπτα και αγνοεί τα δίσεκτα δευτερόλεπτα — μια σκόπιμη απλοποίηση που διευκολύνει την αριθμητική.