כיצד לטפל בתאריכים ושעות ב- Python עם תאריך שעון

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

תחילת העבודה עם datetime

המודול datetime מספק מספר מחלקות, כגון datetime.date, datetime.time, datetime.datetime, datetime. timedelta, ו-datetime.tzinfo. שיעורים אלו מאפשרים לנו לעבוד עם תאריכים, שעות ומרווחי זמן.

כדי להתחיל להשתמש במודול datetime, עליך לייבא אותו:

import datetime

עבודה עם תאריכים

אתה יכול ליצור אובייקט תאריך באמצעות המחלקה date. זה דורש שלושה פרמטרים: שנה, חודש ויום.

from datetime import date

# Create a date object
my_date = date(2023, 9, 4)
print(my_date)  # Output: 2023-09-04

אתה יכול גם לגשת לרכיבים בודדים של התאריך, כגון השנה, החודש והיום:

print(my_date.year)   # Output: 2023
print(my_date.month)  # Output: 9
print(my_date.day)    # Output: 4

עבודה עם טיימס

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

from datetime import time

# Create a time object
my_time = time(14, 30, 45)
print(my_time)  # Output: 14:30:45

בדומה לתאריכים, אתה יכול לגשת לרכיבים בודדים של אובייקט הזמן:

print(my_time.hour)   # Output: 14
print(my_time.minute) # Output: 30
print(my_time.second) # Output: 45

שילוב תאריך ושעה עם datetime

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

from datetime import datetime

# Create a datetime object
my_datetime = datetime(2023, 9, 4, 14, 30, 45)
print(my_datetime)  # Output: 2023-09-04 14:30:45

אתה יכול לגשת הן לרכיבי התאריך והשעה של אובייקט datetime:

print(my_datetime.date())  # Output: 2023-09-04
print(my_datetime.time())  # Output: 14:30:45

קבלת התאריך והשעה הנוכחיים

מודול datetime מספק שיטות נוחות לקבל את התאריך הנוכחי, השעה או שניהם:

# Current date
today = date.today()
print(today)  # Output: (current date)

# Current date and time
now = datetime.now()
print(now)  # Output: (current date and time)

חשבון תאריך עם timedelta

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

from datetime import timedelta

# Create a timedelta object
delta = timedelta(days=7)

# Add 7 days to the current date
future_date = today + delta
print(future_date)

ניתן גם לחשב את ההפרש בין שני תאריכים:

# Calculate the difference between two dates
date1 = date(2023, 9, 4)
date2 = date(2023, 9, 11)
difference = date2 - date1
print(difference.days)  # Output: 7

עיצוב תאריכים ושעות

השיטה strftime() מאפשרת לך לעצב תאריך או שעה למחרוזת. שיטה זו לוקחת קוד פורמט כדי לציין את הפורמט הרצוי:

# Format a date object
formatted_date = today.strftime('%B %d, %Y')
print(formatted_date)  # Output: September 04, 2023

קודי פורמט נפוצים כוללים:

  • %Y - שנה (למשל, 2023)
  • %m - חודש כמספר עשרוני מרופד באפס (למשל, 09)
  • %d - יום בחודש כמספר עשרוני מרופד באפס (למשל, 04)
  • %H - שעה (שעון 24 שעות) כמספר עשרוני מרופד באפס (למשל, 14)
  • %M - דקה כמספר עשרוני מרופד באפס (למשל, 30)
  • %S - שני כמספר עשרוני מרופד באפס (למשל, 45)

ניתוח תאריכים ממחרוזות

השיטה strptime() מאפשרת לך להמיר מחרוזת לאובייקט datetime, בהינתן הפורמט של מחרוזת התאריך:

# Parse a date from a string
date_str = '2023-09-04'
parsed_date = datetime.strptime(date_str, '%Y-%m-%d')
print(parsed_date)

עבודה עם אזורי זמן

המודול datetime תומך באובייקטים datetime המודעים לאזור זמן באמצעות ספריית pytz. כדי לעבוד עם אזורי זמן, עליך להתקין pytz:

pip install pytz

לאחר מכן, תוכל להקצות אזור זמן לאובייקט datetime:

from datetime import datetime
import pytz

# Set timezone to UTC
utc_zone = pytz.utc
now_utc = datetime.now(utc_zone)
print(now_utc)

מַסְקָנָה

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