وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

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

0 8
زمان لازم برای مطالعه: 5 دقیقه


معرفی

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

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

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

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

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

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

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

import datetime

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

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

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

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

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

print

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

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 تاریخ در قالب دیگری:

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

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

و در اینجا روش نمایش سال، ماه و روز با استفاده از این است 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)

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

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

import datetime

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

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

  • %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

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

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

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

datetime.strptime(string, format)

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

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

اول بیایید import را 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 کلاس برای نمایش مقادیر زمان استفاده می شود در حالی که date کلاس برای نمایش مقادیر تاریخ تقویم استفاده می شود.

(برچسب‌ها به ترجمه)# python



منتشر شده در 1403-01-02 03:23:03

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید