تبدیل رشته به datetime در پایتون

mohsen2 هفته قبل
ارسال شده در
python

برای تبدیل رشته‌های تاریخ و زمان به datetime در پایتون، می‌توان از روش‌های مختلفی استفاده کرد که در زیر به توضیح آنها می‌پردازیم.

روش اول: استفاده از datetime.strptime

یکی از ساده‌ترین و رایج‌ترین روش‌ها استفاده از تابع strptime از ماژول datetime است. این تابع به شما این امکان را می‌دهد که یک رشته تاریخ و زمان را با فرمت مشخصی تجزیه کنید. فرمت مناسب برای رشته‌ای مانند "Jun 1 2005 1:33PM" به صورت زیر است:

      from datetime import datetime

datetime_object = datetime.strptime('Jun 1 2005 1:33PM', '%b %d %Y %I:%M%p')
print(datetime_object)  # خروجی: datetime.datetime(2005, 6, 1, 13, 33)

    

با استفاده از این تابع می‌توان به راحتی تاریخ و زمان را به یک شیء datetime تبدیل کرد. در صورتی که فقط بخواهید تاریخ بدون زمان را دریافت کنید، می‌توانید از تابع .date() استفاده نمایید:

      date_object = datetime.strptime('Jun 1 2005', '%b %d %Y').date()
print(date_object)  # خروجی: date(2005, 6, 1)

    
  • توجه داشته باشید که فرمت '%b' و '%p' ممکن است در مورد زمان محلی غیر انگلیسی با مشکل مواجه شوند.
  • اگر رشته ورودی فقط شامل تاریخ باشد و زمان در آن وجود نداشته باشد، این تابع می‌تواند هنوز هم با فرمت مناسب کار کند.

روش دوم: استفاده از کتابخانه dateutil

کتابخانه سوم شخص dateutil امکان تجزیه تاریخ و زمان را به راحتی فراهم می‌آورد و می‌تواند بسیاری از فرمت‌های تاریخ را به صورت خودکار شناسایی کند:

      from dateutil import parser

datetime_object = parser.parse("Aug 28 1999 12:00AM")
print(datetime_object)  # خروجی: datetime.datetime(1999, 8, 28, 0, 0)

    

این روش به ویژه برای کدهایی که به خوانایی و سادگی بیشتر نیاز دارند، مناسب است. برای نصب این کتابخانه می‌توانید از دستور زیر استفاده کنید:

      pip install python-dateutil

    
  • با توجه به حجم داده‌های بزرگ، استفاده از این روش ممکن است بهینه‌ترین گزینه نباشد، زیرا ممکن است برای هر رشته، فرمت را حدس بزند که ممکن است زمان‌بر باشد.
  • برای پروژه‌هایی که نیاز به وابستگی به کتابخانه‌های خارجی ندارند، روش اول (استفاده از strptime) ممکن است انتخاب بهتری باشد.
رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!