از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
روش دریافت تاریخ و زمان فعلی در پایتون
سرفصلهای مطلب
معرفی
ورود به سیستم، ذخیره سوابق در پایگاه داده، و دسترسی به فایل ها، همگی از کارهای رایجی هستند که یک برنامه نویس انجام می دهد روی. در هر یک از این موارد، تاریخ و زمان نقش مهمی در حفظ معنا و یکپارچگی داده ها دارند. برنامه نویسان اغلب باید با تاریخ و زمان درگیر شوند.
در این مقاله می آموزیم که چگونه با استفاده از داخلی پایتون، تاریخ و زمان فعلی را بدست آوریم زمان قرار مدول. با آن ماژول، میتوانیم تمام دادههای مربوطه را در یک شی دریافت کنیم یا تاریخ و زمان را جداگانه استخراج کنیم.
همچنین یاد خواهیم گرفت که چگونه تاریخ و زمان خود را برای مناطق زمانی مختلف تنظیم کنیم. در نهایت، ما به تبدیل نگاه خواهیم کرد datetime
اشیاء به مهرهای زمانی محبوب Unix یا Epoch.
دریافت تاریخ و زمان فعلی با زمان تاریخ
را datetime
ماژول شامل کلاس های مختلفی برای دریافت اطلاعات در مورد تاریخ و زمان است:
datetime.date
: روز، ماه و سال یا تاریخ را ذخیره می کندdatetime.time
: زمان را بر حسب ساعت، دقیقه، ثانیه و میکروثانیه ذخیره می کند. این اطلاعات مستقل از هر تاریخی استdatetime.datetime
: هر دو را ذخیره می کندdate
وtime
ویژگی های
بیایید تاریخ و زمان فعلی را با a بدست آوریم datetime.datetime
شی، زیرا استخراج آن آسان تر است date
و time
اشیاء از آن اول، اجازه دهید import را datetime
مدول:
from datetime import datetime
در حالی که در ابتدا عجیب به نظر می رسد، ما در حال دریافت آن هستیم datetime
کلاس از datetime
ماژول که دو چیز مجزا هستند.
ما می توانیم استفاده کنیم now()
تابع برای به دست آوردن یک شی با جاری تاریخ و زمان:
current_datetime = datetime.now()
print(current_datetime)
با اجرای این فایل خروجی زیر را به ما می دهد:
2019-12-13 12:18:18.290623
را now()
تابع یک شی با تمام تاریخ و زمان لحظه ایجاد آن به ما داد. زمانی که ما print پایتون بهطور خودکار شی را به رشتهای قالببندی میکند تا انسان بتواند آن را به راحتی بخواند. می توانید راهنمای ما را بخوانید روی روش قالب بندی تاریخ ها در پایتون برای یادگیری روش های مختلف print زمان.
شما می توانید ویژگی های فردی تاریخ و زمان را مانند این دریافت کنید:
print(current_datetime.year)
print(current_datetime.month)
print(current_datetime.day)
print(current_datetime.hour)
print(current_datetime.minute)
print(current_datetime.second)
print(current_datetime.microsecond)
را now()
روش برای ثبت یک لحظه عالی است. با این حال، زمانی که شما فقط به تاریخ اهمیت می دهید، زائد است یا زمان، اما نه هر دو. چگونه می توانیم فقط اطلاعات تاریخ را دریافت کنیم؟
دریافت تاریخ فعلی
دو راه برای دریافت تاریخ فعلی در پایتون وجود دارد. در پایتون console، می توانیم تاریخ را از a datetime
شی با date()
روش:
>>> from datetime import datetime
>>> current_date = datetime.now().date()
>>> print(current_date)
2019-12-13
با این حال، به نظر می رسد مقداردهی اولیه a اتلاف باشد datetime
فقط برای ثبت تاریخ اعتراض کنید. یک جایگزین می تواند استفاده از today()
روش از date
کلاس:
>>> from datetime import date
>>> current_date = date.today()
>>> print(current_date)
2019-12-13
را datetime.date
کلاس نشان دهنده یک تاریخ تقویم است. آن year
، month
، و day
به همان روشی که ما به آنها دسترسی داریم می توان به ویژگی ها دسترسی داشت روی را datetime
هدف – شی.
مثلا این print
عبارت هر ویژگی را دریافت می کند و همچنین از آن استفاده می کند weekday()
روش دریافت روز هفته:
>>> print("It's the %dth day of the week, %dth day of the %dth month of the %dth year" %
... (current_date.weekday()+1, current_date.day, current_date.month, current_date.year))
It's the 5th day of the week, 13th day of the 12th month of the 2019th year
توجه داشته باشید: weekday()
متد یک عدد صحیح بین 0 تا 6 را برای نمایش روز هفته برمی گرداند. 0 مربوط به دوشنبه است. بنابراین، در مثال ما 1 را به منظور اضافه کردیم print روز پنجم هفته (جمعه)، اگرچه weekday()
روش برگردانده شد 4.
اکنون که می توانیم تاریخ فعلی را به تنهایی دریافت کنیم، بیایید ببینیم چگونه می توانیم زمان فعلی را بدست آوریم
دریافت زمان فعلی
ما زمان فعلی را از a می گیریم datetime
شی با استفاده از time()
روش:
>>> from datetime import datetime
>>> current_time = datetime.now().time()
>>> print(current_time)
12:18:18.290623
برخلاف بازیابی تاریخ ها، هیچ میانبری برای ثبت مستقیم زمان فعلی وجود ندارد. را datetime.time
کلاس مفهومی از زمان را به صورت ساعت، دقیقه، ثانیه و میکروثانیه نشان می دهد – هر چیزی که کمتر از یک روز باشد.
مانند datetime
شی، ما می توانیم مستقیماً به ویژگی های آن دسترسی داشته باشیم. در اینجا یک مثال است که در آن ما print را current_time
در یک جمله:
>>> print("It's %d o'clock. To be exact, it's %d:%d and %d seconds with %d microseconds" %
... (current_time.hour, current_time.hour, current_time.minute, current_time.second, current_time.microsecond))
It's 12 o'clock. To be exact, it's 12:18 and 18 seconds with 290623 microseconds
به طور پیش فرض، now()
تابع زمان منطقه زمانی محلی شما را برمی گرداند. اگر لازم باشد آن را به یکی دیگر که در اولویت کاربر تنظیم شده است تبدیل کنیم، چه؟ بیایید ببینیم چگونه می توانیم اطلاعات منطقه زمانی را برای بومی سازی ارائه کنیم time
اشیاء.
دریافت تاریخ و زمان فعلی در منطقه زمانی مختلف
را now()
متد یک منطقه زمانی را به عنوان آرگومان می پذیرد، به طوری که datetime
شی در حال تولید به طور مناسب تنظیم می شود. ابتدا باید داده های منطقه زمانی را از طریق دریافت کنیم پیتز کتابخانه
را نصب کنید pytz
کتابخانه با pip
اگر در دسترس نباشد روی کامپیوتر شما در حال حاضر:
$ pip3 install pytz
حالا بیایید استفاده کنیم pytz
برای دریافت تاریخ و زمان فعلی اگر در برلین بودیم:
>>> import pytz
>>> from datetime import datetime
>>> tz = pytz.timezone('Europe/Berlin')
>>> berlin_current_datetime = datetime.now(tz)
>>> print(berlin_current_datetime)
2019-12-14 00:20:50.840350+01:00
را berlin_current_datetime
خواهد بود datetime
شی با تمام خصوصیات و عملکردهایی که قبلاً دیدیم، اما اکنون کاملاً با آنچه برای کسی که در آنجا زندگی می کند مطابقت دارد.
اگر می خواهید زمان را در UTC دریافت کنید، می توانید از آن استفاده کنید pytz
ماژول مانند قبل:
>>> import pytz
>>> from datetime import datetime
>>> utc_current_datetime = datetime.now(pytz.timezone("UTC"))
>>> print(utc_current_datetime)
2019-12-13 23:20:50.840350+00:00
از طرف دیگر، برای زمان UTC شما مجبور نیستید از آن استفاده کنید pytz
ماژول اصلا را datetime
ماژول دارای یک timezone
دارایی، که می تواند به صورت زیر استفاده شود:
>>> from datetime import datetime, timezone
>>> utc_current_datetime = datetime.now(timezone.utc)
>>> print(utc_current_datetime)
2019-12-13 23:20:50.840350+00:00
اکنون که میتوانیم تاریخها و زمانهای خود را برای مطابقت با مناطق زمانی مختلف تبدیل کنیم، بیایید ببینیم چگونه میتوانیم آن را به یکی از پرکاربردترین فرمتها در محاسبات تبدیل کنیم – مهر زمانی یونیکس.
تبدیل مهرهای زمانی به تاریخ و زمان
سیستم های کامپیوتری بر اساس زمان اندازه گیری می کنند روی تعداد ثانیه های سپری شده از دوره یونیکس، یعنی 00:00:00 UTC روی 1 ژانویه 1970. برای برنامهها، پایگاههای داده و پروتکلها معمول است که از مهر زمانی برای نمایش زمان استفاده کنند.
شما می توانید مهر زمانی فعلی را در پایتون با استفاده از time
کتابخانه:
>>> import time
>>> print(time.time())
1576280665.0915806
را time.time()
تابع یک عدد شناور با مهر زمانی یونیکس برمی گرداند. می توانید مهر زمانی را به a تبدیل کنید datetime
شی با استفاده از fromtimestamp()
تابع:
>>> from datetime import datetime
>>> print(datetime.fromtimestamp(1576280665))
2019-12-13 19:44:25
به طور پیش فرض، fromtimestamp()
برمی گرداند a datetime
شی در منطقه زمانی شما اگر میخواهید به گونهای دیگر بومیسازی شود، میتوانید یک منطقه زمانی به عنوان آرگومان دوم ارائه دهید.
به عنوان مثال، برای تبدیل یک مهر زمانی به a datetime
شی در UTC، می توانید این کار را انجام دهید:
>>> from datetime import datetime, timezone
>>> print(datetime.fromtimestamp(1576280665, timezone.utc))
2019-12-13 19:44:25+00:00
برعکس، می توانید از timestamp()
روش تبدیل a datetime
اعتراض به مهر زمانی معتبر:
>>> from datetime import datetime, timezone
>>> print(datetime.now(timezone.utc).timestamp())
1577117555.940705
نتیجه
پایتون داخلی datetime
کتابخانه به ما امکان می دهد تاریخ و زمان فعلی را با now()
تابع. ما می توانیم از بازگشت داده شده استفاده کنیم datetime
برای استخراج فقط قسمت تاریخ یا زمان مورد نظر قرار دهید. ما همچنین می توانیم تاریخ فعلی را با استفاده از today()
تابع.
به طور پیش فرض، پایتون ایجاد می کند datetime
اشیاء در منطقه زمانی محلی ما اگر از آن استفاده کنیم pytz
کتابخانه، ما می توانیم تاریخ و زمان را به مناطق زمانی مختلف تبدیل کنیم.
در نهایت از آن استفاده کردیم fromtimestamp()
تابعی برای گرفتن مهر زمانی یونیکس برای گرفتن a datetime
هدف – شی. اگر یک داریم datetime
شی، ما می توانیم با استفاده از آن یک مهر زمانی دریافت کنیم timestamp()
روش.
(برچسبها به ترجمه)# python
منتشر شده در 1403-01-18 22:05:05