نحوه قالب بندی تاریخ ها در پایتون

معرفی

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

قالب بندی تاریخ یک کار معمولی است که شما به عنوان یک برنامه نویس با آن روبرو خواهید شد و اگر برنامه شما آنها را فاش کند، ارتباط صحیح تاریخ ها با کاربران نهایی، بخش مهمی از UX است.

مناطق مختلف در سراسر جهان راه های متفاوتی برای نمایش تاریخ/زمان دارند، بنابراین هدف شما به عنوان یک برنامه نویس ارائه مقادیر تاریخ به گونه ای است که برای کاربران قابل خواندن باشد.

برای مثال، ممکن است لازم باشد یک مقدار تاریخ را به صورت عددی مانند "02-23-2023" نشان دهید. از طرف دیگر، ممکن است لازم باشد همان مقدار تاریخ را در قالب متنی طولانی‌تری مانند «۲۳ فوریه ۲۰۲۳» بنویسید. در سناریویی دیگر، ممکن است بخواهید ماه را با فرمت رشته ای از یک مقدار تاریخ با فرمت عددی استخراج کنید.

در این مقاله به بررسی انواع اشیاء تاریخ به همراه کارایی آنها می پردازیم.

ماژول زمان تاریخ

پایتون datetime ماژول حاوی متدهایی است که می توان از آنها برای کار با مقادیر تاریخ و زمان استفاده کرد. برای استفاده از این ماژول، ابتدا آن را از طریق وارد می کنیم import بیانیه به شرح زیر

import datetime

ما می توانیم مقادیر زمان را با استفاده از time کلاس صفات برای time کلاس شامل ساعت، دقیقه، ثانیه و میکروثانیه است.

توجه داشته باشید: استدلال برای time کلاس اختیاری است اگر چه اگر هیچ آرگومانی را مشخص نکنید، زمان 0 را برمی‌گردانید، که بعید است در بیشتر مواقع آن چیزی باشد که به آن نیاز دارید.

به عنوان مثال، می توانید یک شی زمانی را با مقدار 1 ساعت، 10 دقیقه، 20 ثانیه و 13 میکروثانیه با استفاده از:

t = datetime.time(1, 10, 20, 13)

برای دیدن زمان، بیایید از آن استفاده کنیم print عملکرد:

print(t)

برای استخراج فیلدهایی مانند ساعت، دقیقه، ثانیه یا میکروثانیه - می توانید به ترتیب به هر فیلد دسترسی داشته باشید:

print('hour:', t.hour)

دقیقه، ثانیه و میکروثانیه برای زمان فوق را می توان به صورت زیر بازیابی کرد:

print('Minutes:', t.minute) 
print('Seconds:', t.second) 
print('Microsecond:', t.microsecond) 

مقادیر تاریخ تقویم را می توان از طریق نشان داد date کلاس نمونه ها دارای ویژگی هایی برای سال، ماه و روز خواهند بود.

اجازه دهید ما تماس بگیرید today() روش دیدن تاریخ امروز:

import datetime

today = datetime.date.today()
print(today) 

کد تاریخ امروز را برمی گرداند، بنابراین خروجی که مشاهده می کنید به روزی که اسکریپت بالا را اجرا می کنید بستگی دارد.

حالا بیایید با آن تماس بگیریم ctime روش چاپ تاریخ در قالب دیگری:

print('ctime:', today.ctime())

La ctime روش از فرمت تاریخ-زمان طولانی تری نسبت به نمونه هایی که قبلا دیدیم استفاده می کند. این روش عمدتاً برای تبدیل Unix-time (تعداد ثانیه از اول ژانویه 1) به فرمت رشته ای استفاده می شود.

و در اینجا نحوه نمایش سال، ماه و روز با استفاده از این است date کلاس:

print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)

این نتیجه در:

Year: 2022
Month: 9
Day : 15

تبدیل تاریخ به رشته با strftime()

اکنون که می‌دانید چگونه آبجکت‌های Date و Time را ایجاد کنید، اجازه دهید نحوه قالب‌بندی آنها را به رشته‌های خواناتر بیاموزیم.

برای رسیدن به این هدف، از strftime() روش. این روش به ما کمک می کند تا اشیاء تاریخ را به رشته های قابل خواندن تبدیل کنیم. همانطور که در دستور زیر نشان داده شده است، دو پارامتر نیاز دارد:

time.strftime(format, t)

پارامتر اول رشته قالب است، در حالی که پارامتر دوم زمان قالب بندی است که اختیاری است.

این روش همچنین می تواند در مورد a datetime به طور مستقیم، همانطور که در مثال زیر نشان داده شده است:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))

راهنمای عملی و عملی ما برای یادگیری Git را با بهترین روش ها، استانداردهای پذیرفته شده در صنعت و برگه تقلب شامل بررسی کنید. دستورات Google Git را متوقف کنید و در واقع یاد گرفتن آی تی!

ما از رشته های کاراکتر زیر برای قالب بندی تاریخ استفاده کرده ایم:

  • %b: سه کاراکتر اول نام ماه را برمی گرداند. در مثال ما، "Sep" را برگرداند.
  • %d: روز ماه را از 1 تا 31 برمی گرداند. در مثال ما "15" را برگرداند.
  • %Y: سال را در قالب چهار رقمی برمی گرداند. در مثال ما، "2022" را برگرداند.
  • %H: ساعت را برمی گرداند. در مثال ما، "00" را برگرداند.
  • %M: دقیقه را از 00 به 59 برمی گرداند. در مثال ما، "00" را برمی گرداند.
  • %S: دومی را از 00 به 59 برمی گرداند. در مثال ما، "00" را برمی گرداند.

ما زمانی را سپری نکردیم، بنابراین مقادیر زمان همگی "00" هستند. مثال زیر نشان می دهد که چگونه می توان زمان را نیز قالب بندی کرد:

import datetime

x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))

لیست کامل کد کاراکتر

به غیر از رشته کاراکترهای داده شده در بالا، strftime متد چندین دستورالعمل دیگر برای قالب بندی مقادیر تاریخ می گیرد:

  • %a: سه نویسه اول روز هفته را برمی گرداند، مثلاً چهارشنبه.
  • %A: نام کامل روز هفته، به عنوان مثال چهارشنبه را برمی گرداند.
  • %B: نام کامل ماه را برمی گرداند، به عنوان مثال سپتامبر.
  • %w: روز هفته را به عنوان یک عدد، از 0 تا 6، با یکشنبه 0 برمی گرداند.
  • %m: ماه را به صورت عدد از 01 تا 12 برمی گرداند.
  • %p: AM/PM را برای زمان برمی‌گرداند.
  • %y: سال را به صورت دو رقمی یعنی بدون قرن برمی گرداند. به عنوان مثال، "18" به جای "2018".
  • %f: میکروثانیه را از 000000 به 999999 برمی گرداند.
  • %Z: منطقه زمانی را برمی گرداند.
  • %z: افست UTC را برمی گرداند.
  • %j: تعداد روزهای سال را از 001 تا 366 برمی گرداند.
  • %W: شماره هفته سال از 00 تا 53 را با دوشنبه به عنوان اولین روز هفته برمی گرداند.
  • %U: شماره هفته سال را از 00 تا 53 با یکشنبه به عنوان اولین روز هر هفته برمی گرداند.
  • %c: نسخه تاریخ و زمان محلی را برمی گرداند.
  • %x: نسخه محلی تاریخ را برمی گرداند.
  • %X: نسخه محلی زمان را برمی گرداند.

به مثال زیر توجه کنید:

import datetime

x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))

و در اینجا این است که چگونه می توانید فقط ماه را دریافت کنید:

print(x.strftime('%B'))

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

print(x.strftime('%Y'))

در این مثال از کد قالب استفاده کرده ایم %Y. توجه داشته باشید که Y با حروف بزرگ است حالا با حروف کوچک بنویس:

print(x.strftime('%y'))

همانطور که می بینید، با این کدهای قالب بندی می توانید تاریخ زمان را تقریباً به هر شکلی که می خواهید نشان دهید.

تبدیل رشته ها به تاریخ با strptime

La strftime() متد به ما کمک کرد تا اشیاء تاریخ را به رشته های قابل خواندن تر تبدیل کنیم. این strptime() متد برعکس عمل می‌کند، یعنی رشته‌ها را می‌گیرد و آن‌ها را به آبجکت‌های تاریخی تبدیل می‌کند که پایتون بتواند آن را بفهمد.

این زمانی مفید است که یک تاریخ با قالب رشته ای دریافت می کنید، و می خواهید آن را به تاریخ رشته ای متفاوت تبدیل کنید. با تبدیل به یک شیء datetime واسطه، به یک ساختار تجزیه شده دسترسی پیدا می‌کنید که می‌تواند به هر فرمت دیگری قالب‌بندی مجدد شود.

در اینجا سینتکس متد آمده است:

datetime.strptime(string, format)

La string پارامتر مقداری در قالب رشته ای است که می خواهیم به فرمت تاریخ تبدیل کنیم. این format پارامتر دستورالعملی است که فرمت را تا تاریخ پس از تبدیل مشخص می کند.

برای مثال، فرض کنید باید رشته “9/15/22” را به a تبدیل کنیم datetime هدف - شی.

بیایید ابتدا وارد کنیم datetime مدول:

from datetime import datetime

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

str = '9/15/22'

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

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

date_object = datetime.strptime(str, '%m/%d/%y')

بیایید اکنون با آن تماس بگیریم print تابع نمایش رشته در datetime قالب:

print(date_object)

همانطور که می بینید، تبدیل با موفقیت انجام شد!

اکنون می توانید این شی تاریخ را به هر قالب رشته ای دیگر تبدیل کنید.

مدیریت جداکننده های مختلف به آسانی استفاده از آنها در رشته قالب است:

from datetime import datetime

str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)

نتیجه

در این مقاله نحوه قالب بندی تاریخ ها در پایتون را بررسی کردیم. دیدیم که چگونه datetime ماژول در پایتون می تواند برای دستکاری مقادیر تاریخ و زمان استفاده شود. ماژول شامل تعدادی کلاس است که می توان برای این منظور از آنها استفاده کرد. به عنوان مثال time کلاس برای نشان دادن مقادیر زمان استفاده می شود در حالی که the date کلاس برای نمایش مقادیر تاریخ تقویم استفاده می شود.

تمبر زمان:

بیشتر از Stackabuse