آموزش کامل تبدیل تاریخ در پایتون: تبدیل فرمت تاریخ در پایتون

فهرست مطالب این نوشته
Toggleدر دنیای برنامهنویسی، کار با تاریخ و زمان از جمله وظایف پرتکرار و ضروری است. زبان پایتون نیز با داشتن کتابخانههای متنوع، این امکان را بهصورت انعطافپذیر و قدرتمند در اختیار برنامهنویسان قرار میدهد.

از تبدیل سال به روز در پایتون گرفته تا تبدیل تاریخ میلادی به شمسی در پایتون، پایتون ابزارهایی متنوع و کاربردی را فراهم کرده است. در این مقاله از آکادمی چابک، بهصورت مرحلهبهمرحله با انواع روشها، کتابخانههای پایتون و کدهای عملی برای تبدیل تاریخ در پایتون آشنا میشویم.
آشنایی با ماژول datetime
پایهایترین ابزار برای تبدیل تاریخ در پایتون، ماژول datetime است. این ماژول در هسته پایتون قرار دارد و نیازی به نصب جداگانه ندارد. از قابلیتهای آن میتوان به موارد زیر اشاره کرد:
- ساخت و دستکاری آبجکتهای تاریخ و زمان
- محاسبه اختلاف بین دو تاریخ
- تبدیل بین فرمتهای مختلف تاریخ
نمونه کد:
import datetime
today = datetime.date.today()
print(today) # خروجی: 2024-05-22
در بسیاری از موارد، همین ماژول برای مدیریت و تبدیل عدد به تاریخ در پایتون یا تبدیل رشته به تاریخ کفایت میکند.
تبدیل سال به روز در پایتون
گاهی نیاز داریم مقدار سال را به معادل تعداد روز تبدیل کنیم. برای این کار در پایتون میتوان از ضرب ساده استفاده کرد، اما اگر سال کبیسه باشد، باید دقت بیشتری کرد.
def year_to_days(years):
return years * 365 + years // 4 # تخمینی با احتساب سالهای کبیسه
print(year_to_days(5)) # خروجی: 1826
این روش ساده ولی کاربردی برای تبدیل سال به روز در پایتون در محاسبات اولیه مفید است.
تبدیل عدد به تاریخ در پایتون
اگر عددی در اختیار داریم که نمایانگر تعداد روز از یک تاریخ مبنا (مثلاً ۱ ژانویه ۱۹۷۰) باشد، میتوان آن را به تاریخ تبدیل کرد:
from datetime import date, timedelta
epoch = date(1970, 1, 1)
converted = epoch + timedelta(days=18500)
print(converted) # خروجی: 2020-08-16
این روش برای کاربردهای مهندسی و دادههای دیتابیس که بهشکل عدد ذخیره شدهاند، جهت تبدیل عدد به تاریخ در پایتون بسیار کارآمد است.
ابزارها و کتابخانههای لازم برای تبدیل تاریخ با پایتون
پایتون بهجز datetime کتابخانههای دیگری نیز دارد که در تبدیل تاریخ در پایتون مفید هستند:
- arrow: برای مدیریت سادهتر زمان
- pendulum: با پشتیبانی داخلی از timezoneها
- jdatetime: مخصوص تاریخ شمسی در پایتون
- convertdate: برای تبدیل میان تقویمهای مختلف
همه این ابزارها در کنار هم مجموعهای قدرتمند از ابزارها و کتابخانههای لازم برای تبدیل تاریخ با پایتون را میسازند.
تاریخ شمسی در پایتون و ماژول jdatetime
یکی از چالشهای اصلی برنامهنویسان فارسیزبان، کار با تاریخ شمسی در پایتون است. خوشبختانه کتابخانه jdatetime این مشکل را حل کرده است:
import jdatetime
shamsi = jdatetime.date.today()
print(shamsi) # خروجی: 1403-03-01
این کتابخانه مانند datetime کار میکند اما بهجای تاریخ میلادی، خروجی را بهشکل شمسی ارائه میدهد.
تبدیل تاریخ میلادی به شمسی در پایتون
برای تبدیل تاریخ میلادی به شمسی در پایتون از همان jdatetime میتوان استفاده کرد:
import jdatetime
import datetime
miladi = datetime.date(2024, 5, 22)
shamsi = jdatetime.date.fromgregorian(date=miladi)
print(shamsi) # خروجی: 1403-03-02
کاربرد این تبدیل در گزارشگیریها، فرمهای اداری و سیستمهای مالی بسیار پرکاربرد است.
تبدیل سال شمسی به میلادی در پایتون
برعکس مرحله قبل، اگر بخواهیم تبدیل سال شمسی به میلادی در پایتون را انجام دهیم:
shamsi_date = jdatetime.date(1402, 12, 29)
miladi_date = shamsi_date.togregorian()
print(miladi_date) # خروجی: 2024-03-19
این روش بسیار دقیق بوده و از سال ۱۳۰۰ تا ۱۴۹۹ قابل استفاده است.
استفاده از جدول تبدیل میلادی به شمسی
برای موارد خاص که نیاز به مرجع دستی دارید، میتوان از جدول تبدیل میلادی به شمسی استفاده کرد.
گرچه راهکارهای کدنویسی بهتر هستند، اما در محیطهایی که امکان نصب کتابخانه نیست یا برای پشتیبانی آفلاین، نگهداری جدول مرجع مفید است.
برای ساخت جدول در کد نیز میتوان حلقهای تعریف کرد:
for year in range(2000, 2030):
miladi = datetime.date(year, 3, 21)
shamsi = jdatetime.date.fromgregorian(date=miladi)
print(f”{year} -> {shamsi.year}”)
کدنویسی کد تقویم در پایتون
برای ساخت تقویم سفارشی یا نمایش تقویم ماهانه، میتوان از ماژول calendar استفاده کرد:
import calendar
print(calendar.month(2024, 5))
یا برای کد تقویم در پایتون بهشکل شمسی، میتوان از jdatetime و توابع سفارشی استفاده کرد تا تقویم شمسی کاملتری تولید شود.
آشنایی با کتابخانه ساعت در پایتون
برای کار با ساعت دقیق، کتابخانه ساعت در پایتون نیز بسیار مهم است:
from datetime import datetime
now = datetime.now()
print(now.strftime(“%H:%M:%S”)) # ساعت فعلی
همچنین میتوان با timezoneها، مقایسه دو ساعت، و محاسبه اختلاف زمانی بین دو رویداد، پروژههای پیچیدهتری را پیادهسازی کرد.
ساخت گامبهگام برنامه تبدیل تاریخ در پایتون
برای پیادهسازی یک اپلیکیشن ساده با قابلیت تبدیل تاریخ در پایتون، مراحل زیر را طی کنید:
- دریافت ورودی از کاربر (تاریخ میلادی یا شمسی)
- تعیین نوع تبدیل (شمسی به میلادی یا برعکس)
- استفاده از jdatetime برای تبدیل
- نمایش نتیجه با فرمت دلخواه
نمونه کد:
import jdatetime
year = int(input(“سال شمسی را وارد کنید: “))
month = int(input(“ماه را وارد کنید: “))
day = int(input(“روز را وارد کنید: “))
shamsi = jdatetime.date(year, month, day)
miladi = shamsi.togregorian()
print(“تاریخ میلادی:”, miladi)
این مثال یک ساخت گامبهگام برنامه تبدیل تاریخ در پایتون را نشان میدهد که قابل گسترش برای رابط گرافیکی یا تحت وب نیز هست.
کد کامل و آماده اجرای تبدیل تاریخ در پایتون
در پایان، یک کد کامل و آماده اجرای تبدیل تاریخ در پایتون برای تبدیل تاریخ میلادی به شمسی و بالعکس:
import jdatetime
import datetime
def miladi_to_shamsi(y, m, d):
return jdatetime.date.fromgregorian(date=datetime.date(y, m, d))
def shamsi_to_miladi(y, m, d):
return jdatetime.date(y, m, d).togregorian()
print(“1402/12/29 ->”, shamsi_to_miladi(1402, 12, 29))
print(“2024/5/22 ->”, miladi_to_shamsi(2024, 5, 22))
این کد قابلیت تبدیل دوجانبه را دارد و میتواند در پروژههای واقعی نیز بهراحتی استفاده شود.
جمعبندی
تبدیل تاریخ در پایتون مهارتی کلیدی برای برنامهنویسانیست که با دادههای زمانی سر و کار دارند. از تبدیل سال به روز در پایتون گرفته تا تبدیل سال شمسی به میلادی در پایتون، ابزارها و کتابخانههایی مانند ماژول datetime، jdatetime و کتابخانه ساعت در پایتون امکان توسعه سیستمهای دقیق، حرفهای و منعطف را فراهم میکنند. در همین مسیر، استفاده از منابع آموزشی معتبر مانند دورههای آکادمی چابک نیز میتواند یادگیری این مفاهیم را سادهتر و کاربردیتر کند. وقت آن است که برنامههای خود را با درک دقیقتری از تاریخ و زمان ارتقا دهید.
منبع:
دیدگاهتان را بنویسید