تبدیل رشته و تاریخ به یکدیگر در پایتون

امیرحسین بیگدلو 4 ماه قبل

پایتون کتابخانه datetime را برای کار با تاریخ ارائه میدهد. این کتابخانه ابزارهای مفیدی را برای تبدیل تاریخ به انواع داده های دیگر ارائه میدهد. در این آموزش نحوه تبدیل رشته به تاریخ و همچنین تبدیل تاریخ به رشته را بررسی میکنیم.

 

مدیریت تاریخ، زمان و رویدادهای تقویم در زبان های برنامه نویسی به طرز فریبنده ای پیچیده است. برنامه نویس باید مناطق زمانی، تغییرات در روز و حتی سال های کبیسه را در نظر بگیرد. خوشبختانه برای توسعه دهندگان، پایتون ماژول datetime را به عنوان بخشی از کتابخانه استاندارد ارائه می دهد.

 

آبجکت های Datetime میتوان به دو شکل aware و naive دسته بندی کرد. یک آبجکت aware حاوی اطلاعاتی در مورد ساعت تابستانی و منطقه زمانی مورد نظر است. به این ترتیب، این آبجکت ها را می توان نسبت به یکدیگر بدون مشکل یا نیاز به تبدیل مقایسه کرد.

 

آبجکت های naive فقط حاوی اطلاعات مربوط به زمان هستند (که می تواند سال، روز، ماه را نیز شامل شود) اما هیچ اطلاعاتی در مورد مناطق زمانی ندارد. به این ترتیب، توسعه دهندگان برنامه باید تصمیم بگیرند که چگونه این آبجکت ها مقایسه شوند.

 

ماژول datetime پایتون رشته ها و تاریخ را با استفاده از نمادهای خاص تبدیل می کند. این نمادها را می توان در قالب رشته ای به ماژول datetime از طریق توابع strftime و strptime ارسال کرد و قالبی را کنترل کرد که در آن یک آبجکت datetime یا از یک رشته تجزیه می شود یا به یک رشته تبدیل می شود.

 

این نمادها در جدول زیر نمایش داده شده است:

لیست نمادهایی که در تبدیل تاریخ و رشته پایتون کاربرد دارند

 

 

# تبدیل تاریخ به رشته با تابع strftime پایتون

برای تبدیل تاریخ به رشته در پایتون از تابع strftime استفاده میشود. این تابع یک آبجکت تاریخ را به یک رشته تبدیل میکند:

# Create a datetime object
dto = datetime.now()

# Convert to string
dto_string = dto.strftime("%Y-%m-%d")

>>> dto_string
2022-06-17 <class 'str'>

>>> dto
2022-06-17 00:00:00 <class 'datetime.datetime'>

 

در مثال بالا، زمان الآن را در dto ذخیره کرده و با استفاده از این متغیر تابع strftime را صدا میزنیم. فرمت مورد نیاز را با استفاده از نمادهایی که قبلا در جدول دیدیم مشخص کرده و یک رشته بدست می آوریم. دقت کنید که تابع strftime یک رشته جدید را برمیگرداند و تاثیری در آبجکت اصلی که dto بود ندارد.

 

 

# تبدیل رشته به تاریخ با تابع strptime پایتون

برای تبدیل رشته با تاریخ در پایتون از تابع strptime استفاده میشود. مقدار بازگشتی یک struct_time است که توسط gmtime یا localtime برگردانده شده است. این تابع از همان نمادهایی استفاده میکند که در جدول بالا دیدید.

# Have a string
dto = "2022-06-17"

# Convert to datetime
dto = datetime.strptime(dto, "%Y-%m-%d")

>>> dto
2022-06-17 00:00:00 

>>> type(dto)
<class 'datetime.datetime'>

 

توجه داشته باشید که dto اکنون حاوی اطلاعات ساعت، دقیقه و ثانیه است. این ابزار دقیقا نیمه شب را در نظر می گیرد.

مطالب مشابه



مونگارد