logo

עידן פייתון ל-Datetime

במדריך הבא, נבין את ההמרה של עידן ל-DateTime ב- שפת תכנות Python באמצעות כמה דוגמאות. נשתמש בתקופת Python על מנת להמיר עידן לתאריך ושעה, בהתאמה. נעסוק גם בנושאים הבאים:

  1. המרת DateTime לזמן עידן
  2. המרת תקופה למחרוזת DateTime
  3. המרת עידן ל-DateTime אלפיות השנייה
  4. המרת תקופה לאזור זמן של DateTime
  5. המרת עידן יוניקס ל-DateTime
  6. המרת DateTime לזמן עידן באלפיות שניות
  7. המרת חותמת עידן ל-DateTime
  8. תקופת Python DateTime שנת מחוץ לטווח

אבל לפני שנתחיל, הבה נבין בקצרה את זמן עידן ב-Python.

מהו זמן עידן ב- Python?

זמן אפוק, המכונה גם זמן יוניקס או זמן POSIX, הוא מסגרת לעקוב אחר הזמן כשניות שונות שחלפו מאז עידן יוניקס, שהוא 12:00 UTC ב-1 בינואר 1970. מסגרת זו משמשת באופן נרחב בחישוב מסגרות ותכנות ניבים , כולל Python.

ב-Python, אנו יכולים לעבוד עם זמן גיל תוך שימוש במודול הזמן, שנותן יכולות לשלוט בערכים הקשורים לזמן. אחת היכולות החיוניות לניהול זמן גיל היא time.time(), שמחזירה את הזמן המתמשך בשניות מאז הגיל כמספר נקודת סחיפה.

המרת זמן עידן ל-DateTime באמצעות Python

אנחנו יכולים להשתמש בפייתון datetime.fromtimestamp() פונקציה על מנת להמיר את זמן העידן ל-DateTime. הבה נבחן את הדוגמה הבאה המדגימה את ההמרה של עידן Python ל-DateTime.

דוגמא:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 40246871 # Here, we are using the datetime.fromtimestamp() function date_time = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the value print('Given epoch time:', epoch_time) print('Converted Datetime:', date_time ) 

תְפוּקָה:

 Given epoch time: 40246871 Converted Datetime: 1971-04-12 01:11:11 

הֶסבֵּר:

בדוגמה לעיל, מודול התאריך-שעה מיובא, תוך התחשבות בשליטה על ערכי תאריך ושעה. לאחר מכן, המשתנה epoch_time מחולק בערך המסוים של 40246871, תוך התייחסות לירידה בשניות מאז עידן יוניקס (1 בינואר 1970, 00:00:00 UTC).

התועלת המרכזית של התוכן נעוצה בשימוש ביכולת datetime.fromtimestamp(). יכולת זו דורשת השקעה מסוימת (epoch_time) ומשנה אותה לתצורה מובנת יותר על ידי יצירת אובייקט datetime. אובייקט התאריך-שעה העוקב, הפונה לאותם תאריך ושעה, מוסתר במשתנה date_time.

כדי לתת תפיסה לשינוי, התוכן משלב שני הכרזות print() . הראשון, print('Given age time:', epoch_time), מציג את הערכת זמן הגיל הראשון, בעוד שהאחרון, print('Converted Datetime:', date_time), מניב את הערך שהשתנה מעל תאריך-זמן.

יישומי מחשוב ענן

המרת DateTime לזמן עידן באמצעות Python

על מנת להמיר DateTime לזמן עידן, נשתמש ב- חותמת זמן () פוּנקצִיָה. ראשית, הבה נבחן את הדוגמה הבאה הממחישה את ההמרה של DateTime לזמן עידן.

דוגמא:

 # Here, we are importing the datetime package import datetime # Here, we are using the timestamp() function to convert datetime into epoch time epoch_time = datetime.datetime(2021, 6, 9, 2, 0).timestamp() # Here, we are printing the values print('Converted epoch time:', epoch_time) 

תְפוּקָה:

 Converted epoch time: 1623184200.0 

הֶסבֵּר:

בדוגמה לעיל, מודול התאריך-שעה מיובא לטיפול בפעילויות הקשורות לתאריך ושעה. התוכן מציג את השינוי של תאריך ושעה מסוים לזמן גיל תוך שימוש ביכולת ה-timestamp().

האינטראקציה מתחילה ביצירת אובייקט תאריך-שעה הפונה ל-9 ביוני 2021, בשעה 2:00 לפנות בוקר. אובייקט תאריך-שעה זה מועבר לאחר מכן כטענה ליכולת חותמת הזמן(), המחזירה את אותו זמן גיל (כמות השניות שחלפה מאז עידן יוניקס, 1 בינואר 1970, 00:00:00 UTC). זמן הגיל העוקב מוחזק במשתנה epoch_time.

התוכן מסתיים בהכרזה print(): print('Converted age time:', epoch_time), אשר מניב את זמן הגיל שנקבע עבור תאריך-שעה מוגדר מראש. המרת שעון עידן למחרוזת DateTime באמצעות Python על מנת להמיר את שעון העידן למחרוזת datetime, עלינו להמיר את זמן ה-epoch ל-datetime ולאחר מכן להעביר את המשתנה datetime שנוצר לפונקציה strftime() כדי להמיר אותו למחרוזת datetime בהצלחה.

דוגמא:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 700024 # Here, we are using datetime.fromtimestamp() function to convert epoch time into datetime object mytimestamp = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are using strftime() function to convert datetime_str = mytimestamp.strftime( '%Y - %m - %d %H : %M : %S') # Here, we are printing the values print('Given epoch time:', epoch_time) print('Converted datetime string:', datetime_str) 

תְפוּקָה:

 Given epoch time: 700024 Converted datetime string: 1970 - 01 - 09 07 : 57 : 04 

הֶסבֵּר:

בדוגמה לעיל, שוב ייבאנו את ה תאריך שעה סִפְרִיָה. לאחר מכן השתמשנו ב- datetime.fromtimestamp() פונקציה על מנת להמיר זמן נתון לתאריך וזמן ולאחר מכן להעביר אותו ל- strftime() פונקציה כדי להמיר את האובייקט datetime למחרוזת datetime. ה strftime() פרמטרי פונקציות הם קודי הפורמט שבהם רצינו להתאים אישית את המחרוזת.

    %ANDקובע את השנה%Mקובע את החודש%dקובע את היום%Hמייעד שעה%Mמציין את הדקה%Sמייעד שניות

המרת זמן העידן ל-DateTime אלפיות שניות באמצעות Python

אנחנו יכולים לקבל את DateTime יחד עם אלפיות שניות מזמן העידן באמצעות השיטה שעשינו להמרה של זמן עידן ל-DateTime. הבה נבחן את הדוגמה הבאה המדגימה את אותו הדבר.

דוגמא:

 # Here, we are importing the datetime package import datetime # Here, we are given epoch time epoch_time = 402471.238201 # Here, we are using the datetime.fromtimestamp() function date_time = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the value print('Given epoch time:', epoch_time) print('Converted Datetime:', date_time ) 

תְפוּקָה:

 Given epoch time: 402471.238201 Converted Datetime: 1970-01-05 21:17:51.238201 

הֶסבֵּר:

בדוגמה לעיל, מודול התאריך-שעה מיובא לעבודה עם טיפול בפעילויות הקשורות לתאריך ושעה. התפקיד הבסיסי של התוכן הוא לשנות במשך זמן גיל נתון, שנקבע כ-402471.238201 שניות, לתצורה מובנת המשתמשת גם באובייקט תאריך-שעה וגם במחרוזת מאורגנת.

התוכן חוזר לנצל את היכולת datetime.fromtimestamp() כדי לשנות לאורך זמן הגיל לאובייקט datetime. אובייקט התאריך-שעה הבא, שהוכנס במשתנה date_time, מדגים את דקויות ההשוואה של תאריך ושעה. לבסוף, התוכן מדפיס גם את זמן הגיל הראשון וגם את האובייקט שהשתנה במהלך התאריך-זמן.

boto3

הכרזות print() אלו מייצרות תשואה המציגה הן את זמן הגיל הגס והן את אובייקט התאריך והשעה המאורגן, ונותנות תיאור סביר של חותמת הזמן הראשונה והאותו המתאים לאדם.

המרת זמן עידן לאזור זמן DateTime באמצעות Python

אנחנו יכולים להשתמש ב אזור זמן() פונקציה של פיץ חבילה על מנת להמיר זמן עידן לאזור הזמן DateTime. הבה נבחן את הדוגמה הבאה המדגימה את ההמרה של אותו.

דוגמא:

 # Here, we are importing the required package(s) and module(s) from datetime import datetime import pytz # Here, we are using the timezone() function my_timezone = pytz.timezone('CST6CDT') # Here, we are using the localize() function date_timezone = my_timezone.localize( datetime( 2021, 6, 10, 9, 34, 32 ), is_dst = None ) # Here, we are printing the values print( 'DateTime Time zone:', date_timezone ) 

תְפוּקָה:

 DateTime Time zone: 2021-06-10 09:34:32-05:00 

הֶסבֵּר:

בדוגמה שלמעלה, מודול התאריך-שעה משמש לצד מודול ה-pytz כדי לעבוד עם אובייקטי תאריך ושעה באזור זמן מסוים. המטרה העיקרית של התוכן היא ליצור אובייקט תאריך-שעה ולהגדיר במפורש את נקודת הזמן שלו ל-'CST6CDT' (זמן סטנדרטי מוקד עם זמן חיסכון באור שמש), ואז, בשלב זה, להדפיס את התאריך והשעה הבאים.

באופן זה, יכולת הזמן () ממודול pytz מנוצלת כדי ליצור אובייקט אזור זמן הפונה ל-'CST6CDT'. לאחר מכן, היכולת limit() מאובייקט אזור הזמן משמשת כדי לקבוע את הנקודה באזור הזמן עבור אובייקט תאריך-שעה מסוים (10 ביוני 2021, 9:34:32)

הגבול is_dst=None מראה שנתוני זמן החיסכון באור (DST) אינם ניתנים באופן חד משמעי, מה שמאפשר ליכולת limit() להחליט על מצב DST מתאים לאור הזמן שנקבע מראש. סוף סוף, התוכן מדפיס את אובייקט התאריך והשעה הבא עם אזור הזמן שנקבע במפורש.

שעועית ג'אווה

המרת זמן עידן יוניקס ל-DateTime באמצעות Python

תהליך זה של המרת זמן עידן יוניקס ל-DateTime דומה למה שעשינו קודם לכן. תהליך זה כולל את datetime.fromtimestamp() פונקציה להמרת זמן עידן יוניקס לאובייקט DateTime ומשתמשת ב- strftime() פונקציה כדי להפוך את האובייקט לתבנית DateTime המתאים.

הבה נבחן את הדוגמה הבאה המדגימה את אותו הדבר.

דוגמא:

 # Here, we are importing the datetime library import datetime # Here, we have defined a constant value for the epoch time epoch_time = 252384207 # Here, we are using the datetime.fromtimestamp() function datetime_obj = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are using the strftime() function datetime_str = datetime_obj.strftime( '%Y - %m - %d %H : %M : %S' ) # Here, we are printing the values print( 'Unix epoch time:', epoch_time ) print( 'DateTime:', datetime_str ) 

תְפוּקָה:

 Unix epoch time: 252384207 DateTime: 1977 - 12 - 31 08 : 13 : 27 

הֶסבֵּר:

בדוגמה שלמעלה, מודול ה-datetime משמש לשינוי בזמן גיל נתון, המצוין כ-252384207 שניות, לארגון מובן יותר. המטרה המהותית היא ליצור אובייקט תאריך-זמן מזמן הגיל ולאחר מכן לעצב אותו כמחרוזת להצגה. התוכן מתחיל בהכנסת מודול התאריך והשעה. לאחר מכן נעשה שימוש ביכולת datetime.fromtimestamp() כדי לשנות לאורך זמן הגיל לאובייקט datetime.

אובייקט התאריך-שעה הבא, שהוכנס במשתנה datetime_obj, מאפיין את דקויות התאריך והשעה הקשורות. לאחר מכן, היכולת strftime() מנוצלת כדי לעצב את האובייקט datetime כמחרוזת עם ארגון מסוים. עבור מצב זה, התצורה המצוינת היא '%Y - %m - %d %H : %M : %S', המתייחסת לשנה, לחודש, ליום, לשעה, לרגע ולשנייה.

סוף סוף, התוכן מדפיס גם את זמן גיל יוניקס הראשון וגם את מחרוזת התאריך והשעה המסודרת. הכרזות print() אלו יוצרות תשואה המציגה הן את זמן הגיל הגס והן את מחרוזת התאריך והשעה המאורגנת, ומעניקות תיאור שאין לטעות בו של חותמת הזמן הראשונה ושל אותו התאמה אנושית.

המרת DateTime לזמן עידן באלפיות שניות באמצעות Python

על מנת להמיר את עידן DateTime לאלפיות שניות, אנו יכולים להשתמש ב- strptime() פונקציה כדי להחזיר את האובייקט datetime מהמחרוזת שצוינה ולהשתמש ב- חותמת זמן () פונקציה להמרת האובייקט לשניות. יתר על כן, עלינו להכפיל את הערך המתקבל באלף כדי להפיק את העידן DateTime באלפיות שניות.

הבה נבחן דוגמה המדגימה את אותו הדבר.

דוגמא:

 # Here, we are importing the datetime module from datetime import datetime # Here, we are using the strptime() function dt_obj = datetime.strptime( '10-6-2021 10:33:35,72', '%d-%m-%Y %H:%M:%S,%f') epoch_msec = dt_obj.timestamp() * 1000 print('epoch time in milliseconds:', epoch_msec) 

תְפוּקָה:

 epoch time in milliseconds: 1623301415720.0 

הֶסבֵּר:

בדוגמה שלעיל, מודול התאריך-שעה משמש כדי לשנות מחרוזת מעוצבת הפונה לתאריך ושעה מסוימים להערכה בזמן גיל המוערך באלפיות שניות. המחזור מתחיל עם ניצול יכולת strptime() אשר מנתחת את מחרוזת המידע '10-6-2021 10:33:35,72' לאור העיצוב שנתן '%d-%m-%Y %H: %M:%S,%f'. תצורה זו מציינת את היום, החודש, השנה, השעה, הרגע, השניה והמיקרו-שניות של מחרוזת המידע.

אובייקט התאריך-שעה הבא, שהוכנס במשתנה dt_obj, מייצג את נתוני התאריך והשעה המנתחים. באופן זה, התוכן מוודא את זמן הגיל על ידי שימוש באסטרטגיית חותמת הזמן () עבור אובייקט תאריך השעה, תוך התייחסות לכמות השניות שחלפו מאז עידן יוניקס (1 בינואר 1970, 00:00:00 UTC). הגדלת הערך הזה ב-1000 מאמינים לאלפיות שניות, ונותנת תיאור מפורט יותר של הזמן.

סוף סוף, התוכן מדפיס את זמן הגיל שנקבע באלפיות שניות תוך שימוש בניסוח print().

המרת חותמת תקופה ל-DateTime באמצעות Python

אנחנו יכולים להשתמש ב datetime.fromtimestamp() פונקציה להמרת חותמת העידן ל-DateTime. להלן דוגמה המוצגת להלן:

דוגמא:

 # Here, we are importing the datetime module import datetime # Here, we have defined a constant value for epoch timestamp epoch_time = 33456871 # Here, we are using the datetime.fromtimestamp() function the_datetime = datetime.datetime.fromtimestamp( epoch_time ) # Here, we are printing the values print( 'epoch timestamp:', epoch_time ) print( 'DateTime:', the_datetime ) 

תְפוּקָה:

 epoch timestamp: 33456871 DateTime: 1971-01-23 11:04:31 

הֶסבֵּר:

בדוגמה שלמעלה, מודול התאריך-שעה משמש כדי לשנות חותמת זמן נתונה של גיל, הכתובה כ-33456871 שניות, לתצורה סבירה ומובנת יותר. התוכן מתחיל בהכנסת מודול ה-datetime, המעניק כניסה לפונקציות שונות לעבודה עם תאריכים ושעות.

חותמת הזמן של הגיל, מרמזת על כמות השניות שהתגלגלה מאז עידן יוניקס (1 בינואר 1970, 00:00:00 UTC), מוקצית למשתנה epoch_time בתוך התוכן. לפיכך, היכולת datetime.fromtimestamp() משמשת לשינוי חותמת זמן של גיל זה לאובייקט datetime בשם the_datetime.

התוכן נסגר על ידי הדפסת חותמת הזמן של הגיל הראשון וגם אובייקט התאריך המאורגן תוך שימוש במאמרי print().

הבנת שגיאות הקשורות ל-epoch datetime ב-Python

בזמן עבודה עם תאריך השעה של epoch בשפת התכנות Python, אנו עשויים להיתקל בשגיאה האומרת ש-Python epoch datetime היא מחוץ לטווח או ארגומנט לא חוקי של Python.

הצג אפליקציות נסתרות

הבה נבחן דוגמה כדי להבין את הבעיה.

דוגמא:

 # Here, we are importing the datetime module import datetime # Here, we are using the timestamp() function epoch_time = datetime.datetime(1960, 6, 10, 0, 0).timestamp() # Here, we are printing the values print( epoch_time ) 

תְפוּקָה:

 Traceback (most recent call last): File 'D:Pythonepochpython.py', line 5, in epoch_time = datetime.datetime(1960, 6, 10, 0, 0).timestamp() OSError: [Errno 22] Invalid argument 

הֶסבֵּר:

בדוגמה שלמעלה, מודול התאריך-שעה משמש כדי לשנות את תאריך השעה מסוים, עבור מצב זה, '1960-06-10 00:00:00', לזמן גיל תוך שימוש ביכולת חותמת () זמן. התוכן מתחיל בהכנסת מודול תאריך ושעה, המעניק כניסה לפונקציות הקשורות למשימות תאריך ושעה.

התועלת המרכזית של התוכן טמונה בשימוש ביכולת ה-timestamp() המוחלת על אובייקט תאריך-שעה הפונה ל-10 ביוני, 1960, בשעה 12:00. יכולת זו מסתדרת ומחזירה את זמן הגיל, תוך התייחסות לכמות השניות שעברו מאז עידן יוניקס (1 בינואר 1970, 00:00:00 UTC) ועד לתאריך השעה שנקבע מראש.

לאחר מכן התוצאה מודפסת תוך שימוש בהכרזת print(), ויוצרת תוצאה שעשויה להיראות כ'- 306691200.0'.