Epoch time – Unix time
מה זה בעצם epoch time?
זהו הזמן בשניות שעבר מאז 1.1.1970
למה קוראים לזה epoch time?
1.1.1970 נקרא epoch תאריך (עידן = epoch), וזהו הזמן שממנו התחילו מחשבי Unix או מבוססי Unix לספור את הזמן שלהם (כמו לידת ישו לנוצרים, כן… זה כזה חשוב.)
מה ההבדל בין הזמן הרגיל ל epoch time?
זמן יוניקס מיוצג על ידי מספר שלם שגדל ב-1 בכל שנייה שחולפת ללא חישובים לצורך קביעת שנים, חודשים, ימים, שעות ודקות כפי שעושים בני האדם(בכל יום 86400 שניות). הזמן במערכות Unix מודרניות מבוסס על UTC, שסופר שניות לפי מערכת היחידות הבינלאומית ופורש את הזמן לימים כמעט תמיד באורך 86400 שניות. בחודשים מסוימים, בהם יש דקה מעוברת, אורך היממה הוא 86401 שניות. שנייה נוספת זו שומרת על הסנכרון בין סיבוב כדור הארץ לזמן האוניברסלי המתואם.
בזמן יוניקס יש גם ייצוג של שניות לפני 1970, הייצור הוא במספר הקטן מ0 (מינוס).
ייצוג מספר לא שלם עם epoch time
כמו שכתבתי לפני epoch time מיוצג ע”י מספר שלם. כאשר נרצה לייצג מספר לא שלם ע”י epoch timeנשתמש ב epoch timeובמספר המייצג את החלק היחסי שעבר מתחילת השנייה.
כך נראה את :
epoch time תאריך +%s
דבר מעניין אחרון: “באג 2038″🤷♂️
בדומה ל”באג 2000″ בשנת 2038 יהיה באג שעלול לגרום לתקלות בתוכנות המשתמשות בזמן יוניקס לחישוב הזמן. הבאג משפיע על תוכנות המחזיקות את הזמן במשתנה מסוג מספר באורך 32 סיביות. הסיבה לכך היא שהמספר הכי גדול שיכול להיספר במערכות 32 ביט הוא: 2,147,483,647. ב19 לינואר 2038 הספירה שהתחילה מאז 1.1.1970 תגיעה ל2,147,483,647.
חשוב לומר שרוב המערכות כיום לא משתמשות ב32 ביט אך ישנן כאלה שכן. מה יקרה? כנראה לנו אנשי הIT, תהיה קצת הרבה עבודה.
לילה טוב!