از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
حساب تاریخ، تغییر و برش با دلورین پایتون
سرفصلهای مطلب
معرفی
کار با زمان قرار می تواند کمی دلهره آور و چالش برانگیز باشد و مدیریت تاریخ در پایتون نیز از این قاعده مستثنی نیست. پایتون داخلی datetime
ماژول ما را با چندین کلاس آشنا کرد – date
، datetime
، time
، timezone
و timedelta
و چندین کتابخانه خارجی برای رسیدگی به مسائل موجود در ماژول رسمی مانند Arrow ایجاد شده اند.
در این راهنما، ما نگاهی به روش انجام محاسبات زمان و تاریخ، تغییر و برش اشیاء تاریخ در زمان خواهیم انداخت. دلورین – یک کتابخانه ساخته شده بر روی پیتز که کتابخانه استاندارد برای حل مسائل مربوط به مناطق زمانی است و dateutil که برای محاسبه دلتاها بین هر 2 شی تاریخ داده شده استفاده می شود.
نصب Delorean راه اندازی یک محیط مجازی
Delorean برای نصب از طریق در دسترس است pip
. به طور کلی توصیه می شود که در یک محیط مجازی کار کنید زیرا به شما امکان می دهد وابستگی های مورد نیاز پروژه های مختلف را جدا شده سازماندهی کنید.
در لینوکس یا MacOS برای ایجاد یک محیط مجازی، ما اجرا می کنیم:
$ python3 -m venv env
$ source env/bin/activate
$ python3 -m pip install delorean
متناوبا، از سوی دیگر، روی ویندوزی که می توانیم اجرا کنیم:
$ virtualenv env
$ .\env\Scripts\activate
$ python3 -m pip install delorean
جمع و تفریق زمان با Timedelta
timedelta
نشان دهنده تفاوت بین دو است datetime
اشیاء است و وضوح میکروثانیه دارد. استفاده کردن timedelta
، می توانیم مدت زمان های مختلف را تعریف کنیم، مانند microseconds
، seconds
، minutes
، hours
، days
و weeks
.
این شامل هیچ اطلاعاتی در مورد تاریخ نیست – فقط مدت زمان. این timedelta
بین 5 تا 10 خرداد برابر است با timedelta
بین 5 تا 10 مه – 5 روز.
این باعث می شود که جمع یا کم کردن مدت زمان از آن واقعاً آسان باشد datetime
اشیاء:
from delorean import Delorean
import datetime
dt_tm_future = Delorean()
dt_tm_future += datetime.timedelta(days=3)
dt_tm_past = Delorean()
dt_tm_past -= datetime.timedelta(weeks=3)
print("The date 3 days from now is: ", dt_tm_future)
print("The date 3 weeks before now was: ", dt_tm_past)
این نتیجه در:
The date 3 days from now is: Delorean(datetime=datetime.datetime(2021, 7, 17, 10, 22, 51, 403546), timezone='UTC')
The date 3 weeks before now was: Delorean(datetime=datetime.datetime(2021, 6, 23, 10, 22, 51, 403643), timezone='UTC')
با Delorean تعداد روزهای بین قرارها را دریافت کنید
یک ناشناخته مشترک با چندین تاریخ، تعداد روزهای بین دو تاریخ معین است. این نتیجه معمولاً در یک بسته بندی می شود timedelta
با توجه به این واقعیت که برای نشان دادن این تفاوت طراحی شده است.
با توجه به اینکه جمع یا تفریق چقدر آسان است timedelta
از تاریخ و تا تاریخ، طبیعی است که این عملیات نیز آسان است.
برای بدست آوردن تعداد روزهای بین دو تاریخ در پایتون با دلورین، فقط تاریخ ها را کم می کنیم که نتیجه آن timedelta
نمایش تفاوت:
present_date = Delorean()
new_year = Delorean(datetime=datetime.datetime(2022, 1, 1), timezone='UTC')
until_new_year = new_year - present_date
print("Days until 2022 ", until_new_year)
print("Days till 2022 ", until_new_year.days)
ما میتوانیم print کل timedelta
شی یا فقط به آن دسترسی داشته باشید days
صفت:
Days until 2022 170 days, 13:24:22.817417
Days till 2022 170
تغییر زمان و تاریخ
Delorean به شما این امکان را می دهد که بدون زحمت اشیاء زمان تاریخ را با جایگزینی یا جابجایی مقادیر تغییر دهید. برای این کار از replace()
و shift()
مواد و روش ها.
این replace()
متد به شما امکان می دهد جنبه خاصی از نمونه تاریخ را جایگزین کنید، while shift()
به شما امکان می دهد منطقه زمانی را تغییر دهید:
from delorean import Delorean
date = Delorean(datetime=datetime.datetime(2021, 5, 14, 12), timezone='Europe/Paris')
altered_tm = date.replace(hour=10)
altered_dt = date.replace(month=10)
print("Altered time is:", altered_tm)
print("Altered date is:", altered_dt)
altered_dt.shift('US/Pacific')
print("Shifted object:", altered_dt)
ما ایجاد کرده ایم Delorean
به عنوان مثال، آن را تغییر داد hour
و month
ویژگی ها، و سپس شیء جدید و تغییر یافته datetime را به یک منطقه زمانی جدید منتقل کرد:
Altered time is: Delorean(datetime=datetime.datetime(2021, 5, 14, 10, 0), timezone='Europe/Paris')
Altered date is: Delorean(datetime=datetime.datetime(2021, 10, 14, 12, 0), timezone='Europe/Paris')
Shifted object: Delorean(datetime=datetime.datetime(2021, 10, 14, 3, 0), timezone='US/Pacific')
اشیاء Datetime را با Delorean کوتاه کنید
بسته به روی دلیل استفاده شما datetime
برای – ممکن است به اندازه گیری های مرتبه کوچکتر مانند ثانیه یا میلی ثانیه اهمیتی ندهید. در حالی که شما به سادگی می توانید print داده ها را بدون اندازه گیری خارج کنید – همچنین می توانید truncate()
آنها را از Delorean
خود شی
روش کار می کند روی اندازهگیریهای مرتبه بالاتر را نیز انجام میدهد و تمام بازههای زمانی معتبر دلور را میپذیرد years
:
from delorean import Delorean
date = Delorean()
print("Date before truncation:", date)
trun_min = date.truncate('minute')
print("Truncated to minutes = ", trun_min)
شایان ذکر است که شما هستید کوتاه شدن به یک سطح اندازه گیری مشخص. به این معنی که – اگر به دقیقه کوتاه کنید – ثانیه و میلی ثانیه کاهش می یابد. در اصل – شما وضوح تصویر را تنظیم می کنید Delorean
نمونه، مثال:
Date before truncation: Delorean(datetime=datetime.datetime(2021, 7, 14, 10, 52, 9, 893770), timezone='UTC')
Truncated to minutes = Delorean(datetime=datetime.datetime(2021, 7, 14, 10, 52), timezone='UTC')
نتیجه
در این راهنما، ما نگاهی به روش انجام محاسبات زمان و تاریخ، تغییر و برش در پایتون با Delorean انداختهایم.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-09 16:56:05