Μετατροπέας Ώρας Epoch
Μετατρέψτε χρονικές σημάνσεις Unix σε ημερομηνίες UTC ή μια ημερομηνία σε δευτερόλεπτα epoch.
Πώς να χρησιμοποιήσετε αυτόν τον μετατροπέα χρόνου epoch
- Επιλέξτε τη λειτουργία μετατροπής
Επιλέξτε Epoch σε ημερομηνία ή Ημερομηνία σε epoch στο πεδίο Λειτουργία μετατροπής.
- Για epoch σε ημερομηνία
Εισαγάγετε τη χρονοσήμανση Unix σε δευτερόλεπτα στο πεδίο Χρονοσήμανση Epoch (δευτερόλεπτα).
- Για ημερομηνία σε epoch
Επιλέξτε την ημερομηνία στο Ημερομηνία ημερολογίου και, στη συνέχεια, ορίστε Ώρα (UTC), Λεπτό (UTC) και Δευτερόλεπτο (UTC) όπως απαιτείται.
- Δείτε το αποτέλεσμα
Ο υπολογιστής εμφανίζει την τιμή UTC, τα Unix milliseconds και την ημέρα της εβδομάδας.
Πώς λειτουργεί αυτός ο μετατροπέας χρόνου epoch
Αυτός ο μετατροπέας χρόνου epoch μεταφράζει μεταξύ χρονοσημάνσεων Unix και αναγνώσιμων από τον άνθρωπο ημερομηνιών UTC. Ο χρόνος Unix — ονομάζεται επίσης χρόνος POSIX ή χρόνος epoch — μετρά τον αριθμό των δευτερολέπτων που έχουν παρέλθει από την εποχή Unix, η οποία ορίζεται ως τα μεσάνυχτα UTC της 1ης Ιανουαρίου 1970 (1970-01-01T00:00:00Z). Αυτή η αναπαράσταση με έναν ακέραιο αριθμό είναι το de-facto πρότυπο για την αποθήκευση και τη μετάδοση χρονοσημάνσεων σε βάσεις δεδομένων, API, αρχεία καταγραφής, διακριτικά JWT και σχεδόν σε κάθε σύγχρονη γλώσσα προγραμματισμού. Ο μετατροπέας υποστηρίζει και τις δύο κατευθύνσεις: η εισαγωγή μιας αριθμητικής χρονοσήμανσης επιστρέφει την αντίστοιχη ημερομηνία UTC, την ημέρα της εβδομάδας και το ισοδύναμο σε χιλιοστά του δευτερολέπτου, ενώ η εισαγωγή μιας ημερομηνίας και ώρας ημερολογίου επιστρέφει την τιμή epoch σε δευτερόλεπτα και χιλιοστά του δευτερολέπτου.
Χρόνος Unix = δευτερόλεπτα που παρήλθαν από 1970-01-01T00:00:00Z Για να μετατρέψετε τη χρονική σήμανση Unix 1.700.000.000 σε ημερομηνία: ξεκινώντας από 1970-01-01 00:00:00 UTC, προσθέστε 1.700.000.000 δευτερόλεπτα. Αυτό ισούται με 19.675 ημέρες, 17 ώρες, 46 λεπτά και 40 δευτερόλεπτα. Η προκύπτουσα ημερομηνία UTC είναι 2023-11-14 στις 22:13:20 UTC, η οποία πέφτει Τρίτη. Το ισοδύναμο σε χιλιοστά του δευτερολέπτου είναι 1.700.000.000.000. Αντίστροφα, η εισαγωγή της 14ης Νοεμβρίου 2023 στις 22:13:20 UTC επιστρέφει μια τιμή epoch ακριβώς 1.700.000.000.
Το Timestamp 0 μετατρέπεται σε 1970-01-01 00:00:00 UTC (Πέμπτη). Το ισοδύναμο σε millisecond είναι 0.
Το Timestamp 1.704.000.000 μετατρέπεται σε 2023-12-31 12:00:00 UTC (Κυριακή). Η εισαγωγή αυτής της ημερομηνίας και ώρας στη λειτουργία «Ημερομηνία σε epoch» επιστρέφει 1.704.000.000.
- ✓ Όλοι οι υπολογισμοί γίνονται σε UTC. Οι μετατροπές σε τοπική ώρα απαιτούν την εφαρμογή της κατάλληλης διαφοράς ζώνης ώρας μετά τη μετατροπή.
- ✓ Τα εμβόλιμα δευτερόλεπτα δεν προσμετρώνται. Όπως το POSIX, αυτός ο μετατροπέας θεωρεί κάθε ημέρα ως ακριβώς 86.400 δευτερόλεπτα, γεγονός που ταιριάζει με τη συμπεριφορά των περισσότερων γλωσσών προγραμματισμού και λειτουργικών συστημάτων.
- ✓ Οι αρνητικές χρονοσημάνσεις αντιπροσωπεύουν ημερομηνίες πριν από την εποχή (1 Ιανουαρίου 1970). Για παράδειγμα, το -86400 αντιστοιχεί στις 31 Δεκεμβρίου 1969.
- ✓ Οι χρονοσημάνσεις σε χιλιοστά του δευτερολέπτου θα πρέπει να διαιρούνται με το 1.000 πριν από την εισαγωγή· ο μετατροπέας δέχεται δευτερόλεπτα ως είσοδο και εμφανίζει το ισοδύναμο σε χιλιοστά του δευτερολέπτου στα αποτελέσματα.
- Οι συναρτήσεις Date.now() της JavaScript και System.currentTimeMillis() της Java επιστρέφουν χιλιοστά του δευτερολέπτου, όχι δευτερόλεπτα — διαιρέστε με το 1.000 πριν εισαγάγετε την τιμή εδώ, ή χρησιμοποιήστε την έξοδο χιλιοστών του δευτερολέπτου για σύγκριση.
- Το πρόβλημα του έτους 2038 επηρεάζει τις χρονικές σημάνσεις ακεραίων 32-bit με πρόσημο, οι οποίες θα υπερχειλίσουν στις 19 Ιανουαρίου 2038 στις 03:14:07 UTC. Τα περισσότερα σύγχρονα συστήματα έχουν μεταβεί σε χρονικές σημάνσεις 64-bit.
- Κατά την αποσφαλμάτωση αποκρίσεων API ή αρχείων καταγραφής, προσέξτε τις χρονικές σημάνσεις που φαίνονται να αποκλίνουν κατά ακριβώς 3.600 ή 7.200 δευτερόλεπτα — αυτό συνήθως υποδηλώνει ότι μια μετατόπιση ζώνης ώρας εφαρμόστηκε (ή παραλείφθηκε) κάπου στη διαδικασία.
- Ο χρόνος Epoch είναι πάντα μονοτονικά αυξανόμενος (αγνοώντας τις προσαρμογές εμβόλιμων δευτερολέπτων), γεγονός που τον καθιστά ιδανικό για την ταξινόμηση συμβάντων, τον υπολογισμό διάρκειας και τη δημιουργία μοναδικών αναγνωριστικών βάσει χρόνου.
- IEEE Std 1003.1 (POSIX) — ορισμός των Δευτερολέπτων από την Epoch
- Προέλευση Unix epoch — Τεκμηρίωση των The Unix Heritage Society και Bell Labs
- RFC 3339 — Ημερομηνία και Ώρα στο Διαδίκτυο: Χρονικές Σημάνσεις
Τι είναι τα Unix timestamps;
Ένα Unix timestamp είναι ο αριθμός των δευτερολέπτων που έχουν παρέλθει από τα μεσάνυχτα UTC της 1ης Ιανουαρίου 1970 — την εποχή Unix (Unix epoch). Αυτός ο ακέραιος αριθμός αποτελεί το de-facto πρότυπο για την αναπαράσταση του χρόνου σε βάσεις δεδομένων, APIs, αρχεία καταγραφής και στις περισσότερες γλώσσες προγραμματισμού. Επειδή είναι ανεξάρτητο από ζώνες ώρας και αυξάνεται μονοτονικά, απλοποιεί την ταξινόμηση, τους υπολογισμούς διάρκειας και τις συγκρίσεις χρόνου. Η Date.now() της JavaScript και πολλά APIs επιστρέφουν milliseconds (1.000 × δευτερόλεπτα), επομένως διαιρέστε με το 1.000 πριν εισαγάγετε μια τιμή millisecond εδώ. Τα αρνητικά timestamps αντιπροσωπεύουν ημερομηνίες πριν από το 1970· για παράδειγμα, το −86.400 είναι ακριβώς μία ημέρα πριν από την εποχή.
Περιπτώσεις χρήσης του epoch time για προγραμματιστές
Οι προγραμματιστές χρησιμοποιούν Unix timestamps κατά την αποθήκευση χρόνων συμβάντων σε βάσεις δεδομένων, τη σειριοποίηση ημερομηνιών σε JSON APIs, τη δημιουργία κλειδιών προσωρινής μνήμης βάσει χρόνου και την αποσφαλμάτωση εγγραφών καταγραφής. Οι στήλες των βάσεων δεδομένων συχνά αποθηκεύουν timestamps ως ακεραίους για αποτελεσματική ευρετηρίαση και ερωτήματα εύρους. Οι αποκρίσεις API επιστρέφουν συχνά epoch seconds ή milliseconds για να αποφευχθεί η ασάφεια της ζώνης ώρας. Κατά την αποσφαλμάτωση, η μετατροπή ενός ακατέργαστου timestamp από ένα log ή ένα JWT claim σε μια αναγνώσιμη από τον άνθρωπο ημερομηνία αποκαλύπτει γρήγορα αν η τιμή είναι σωστή ή αν αποκλίνει λόγω ζώνης ώρας. Ο χρόνος Epoch χρησιμοποιείται επίσης για περιορισμό ρυθμού, λήξη συνεδρίας και δημιουργία ταξινομήσιμων μοναδικών αναγνωριστικών σε κατανεμημένα συστήματα.
Συχνές ερωτήσεις μετατροπέα χρόνου Epoch
Τι είναι το Unix epoch;
Το Unix epoch είναι το σημείο αναφοράς από το οποίο μετράται ο χρόνος Unix: μεσάνυχτα UTC την 1η Ιανουαρίου 1970 (1970-01-01T00:00:00Z). Μια χρονική σήμανση 0 αντιστοιχεί σε εκείνη ακριβώς τη στιγμή.
Γιατί η χρονική σήμανση της JavaScript έχει περισσότερα ψηφία;
Το Date.now() της JavaScript επιστρέφει χιλιοστά του δευτερολέπτου από την εποχή (epoch), όχι δευτερόλεπτα. Διαιρέστε με το 1.000 για να το μετατρέψετε στη μορφή δευτερολέπτων που χρησιμοποιεί αυτό το εργαλείο ή συγκρίνετε απευθείας με την έξοδο χιλιοστών του δευτερολέπτου.
Μπορώ να εισαγάγω αρνητική χρονική σήμανση (timestamp);
Ναι. Οι αρνητικές τιμές αντιπροσωπεύουν ημερομηνίες πριν από την εποχή (epoch). Για παράδειγμα, το −86400 αντιστοιχεί στις 1969-12-31T00:00:00Z, ακριβώς μία ημέρα πριν από την εποχή.
Διαχειρίζεται τα εμβόλιμα δευτερόλεπτα (leap seconds);
Όχι, και αυτό συμβαδίζει με το πρότυπο POSIX. Ο χρόνος POSIX υποθέτει ότι κάθε ημέρα έχει ακριβώς 86.400 δευτερόλεπτα. Τα 27 εμβόλιμα δευτερόλεπτα που έχουν εισαχθεί από το 1972 δεν αναπαρίστανται μεμονωμένα, πράγμα που σημαίνει ότι ο UTC και ο χρόνος Unix μπορεί να διαφέρουν έως και ένα δευτερόλεπτο στα όρια των εμβόλιμων δευτερολέπτων.
Τι είναι το πρόβλημα του έτους 2038;
Τα συστήματα που αποθηκεύουν τον χρόνο Unix ως προσημασμένο ακέραιο 32-bit θα παρουσιάσουν υπερχείλιση στις 19 Ιανουαρίου 2038 στις 03:14:07 UTC, μεταπηδώντας σε έναν μεγάλο αρνητικό αριθμό και παράγοντας ημερομηνίες στο 1901. Οι περισσότερες σύγχρονες πλατφόρμες χρησιμοποιούν πλέον χρονικές σημάνσεις 64-bit, οι οποίες δεν θα παρουσιάσουν υπερχείλιση για πάνω από 290 δισεκατομμύρια χρόνια.