آموزش کامل تبدیل تاریخ در پایتون: تبدیل فرمت تاریخ در پایتون
فهرست مطالب این نوشته
Toggleدر دنیای برنامهنویسی، کار با تاریخ و زمان از جمله وظایف پرتکرار و ضروری است. زبان پایتون نیز با داشتن کتابخانههای متنوع، این امکان را بهصورت انعطافپذیر و قدرتمند در اختیار برنامهنویسان قرار میدهد.
در این میان، موضوعاتی مانند تبدیل تاریخ میلادی به قمری در پایتون، تبدیل تاریخ میلادی به شمسی در پایتون و انتخاب کتابخانه تبدیل تاریخ میلادی به شمسی از پرجستجوترین نیازهای توسعهدهندگان فارسیزبان هستند.
از تبدیل سال به روز در پایتون گرفته تا تبدیل تاریخ میلادی به شمسی در پایتون، پایتون ابزارهایی متنوع و کاربردی را فراهم کرده است. در این مقاله از آکادمی چابک، بهصورت مرحلهبهمرحله با انواع روشها، کتابخانههای پایتون و کدهای عملی برای تبدیل تاریخ در پایتون آشنا میشویم. همچنین نگاهی کاربردی به کتابخانه datetime در پایتون و کتابخانه time در پایتون خواهیم داشت که پایهی بسیاری از این تبدیلها هستند.
تخفیفهای شگفتانگیز جشنواره آکادمی چابک
تخفیف بگیر و ثبت نام کن!
آشنایی با ماژول datetime
پایهایترین ابزار برای تبدیل تاریخ در پایتون، ماژول 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 در پایتون و کتابخانه time در پایتون، ابزارهای قدرتمندی در اختیار شماست. در همین مسیر، استفاده از منابع آموزشی معتبر مانند دورههای آکادمی چابک نیز میتواند یادگیری این مفاهیم را سادهتر و کاربردیتر کند. وقت آن است که برنامههای خود را با درک دقیقتری از تاریخ و زمان ارتقا دهید.
سوالات متداول (FAQ)
بهترین کتابخانه برای تبدیل تاریخ میلادی به شمسی در پایتون کدام است؟
برای تبدیل تاریخ میلادی به شمسی در پایتون، کتابخانه jdatetime بهترین و رایجترین انتخاب است. این کتابخانه بهطور خاص برای تقویم شمسی طراحی شده و دقت بالایی دارد و ساختار آن بسیار شبیه به کتابخانه datetime در پایتون است.
آیا میتوان فقط با کتابخانه datetime در پایتون تاریخ شمسی تولید کرد؟
خیر، کتابخانه datetime در پایتون بهصورت پیشفرض فقط از تقویم میلادی پشتیبانی میکند. برای کار با تاریخ شمسی باید از کتابخانههای جانبی مانند jdatetime یا convertdate استفاده شود.
تفاوت کتابخانه datetime در پایتون با کتابخانه time در پایتون چیست؟
کتابخانه datetime در پایتون برای کار با تاریخ و زمان بهصورت ساختیافته (date، time، datetime) استفاده میشود، در حالی که کتابخانه time در پایتون بیشتر برای اندازهگیری زمان، تأخیرها (sleep) و timestampها کاربرد دارد. در پروژههای حرفهای معمولاً این دو کتابخانه در کنار هم استفاده میشوند.
آیا میتوان بدون نصب کتابخانه اضافی تبدیل تاریخ در پایتون انجام داد؟
برای تبدیلهای ساده مانند محاسبه اختلاف تاریخها یا تغییر فرمت، بله؛ اما برای تبدیلهایی مثل تبدیل تاریخ میلادی به شمسی در پایتون یا قمری، نصب کتابخانههای جانبی الزامی است.
منبع:



دیدگاهتان را بنویسید