متد ()strftime در پایتون — به زبان ساده

۱۴۹۵ بازدید
آخرین به‌روزرسانی: ۳۱ تیر ۱۴۰۳
زمان مطالعه: ۳ دقیقه
دانلود PDF مقاله
متد ()strftime در پایتون — به زبان ساده

در این مطلب، چگونگی تبدیل تاریخ، ساعت و تاریخ-ساعت به رشته معادل با آن، در «زبان برنامه‌نویسی پایتون» (Python Programming Language) و با بهره‌گیری از مثال‌های متعدد آموزش داده شده است. در واقع، متد ()strftime در پایتون مورد بررسی قرار خواهد گرفت.

997696

متد ()strftime در پایتون

متد ()strftimeیکی دیگر از متدهای رشته در پایتون است. این متد رشته‌ای را باز می‌گرداند که نشانگر تاریخ و ساعت با استفاده از اشیای time ،date یا شی datetime است. در ادامه، مثالی در همین رابطه ارائه شده است.

مثال ۱: تبدیل datetime با استفاده از ()strftime

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

1from datetime import datetime
2
3now = datetime.now() # current date and time
4
5year = now.strftime("%Y")
6print("year:", year)
7
8month = now.strftime("%m")
9print("month:", month)
10
11day = now.strftime("%d")
12print("day:", day)
13
14time = now.strftime("%H:%M:%S")
15print("time:", time)
16
17date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
18print("date and time:",date_time)

پس از اجرای قطعه کد بالا، خروجی به صورت زیر خواهد بود.

1year: 2018
2month: 12
3day: 24
4time: 04:59:31
5date and time: 12/24/2018, 04:59:31

در اینجا، time ،day ،year و date_time رشته هستند، در حالی که now یک شی datetime است.

روش کار متد ()strftime

در برنامه بالا، d ، %m ،%Y% و دیگر موارد، کدهای فرمت هستند. متد ()strftime یک یا تعداد بیشتری کد قالب‌بندی را به عنوان آرگومان دریافت می‌کند و رشته قالب‌بندی شده را بر مبنای آن باز می‌گرداند.

1. کلاس datetime از ماژول datetime وارد می‌شود. دلیل این امر آن است که کلاس datetime می‌تواند به متد ()strftime دسترسی داشته باشد.

متد ()strftime در پایتون -- به زبان ساده

2. شی datetime حاوی تاریخ و ساعت کنونی ذخیره شده در متغیر now است.

متد ()strftime در پایتون -- به زبان ساده

3. متد ()strftime برای ساخت رشته‌های قالب‌بندی شده قابل استفاده است.

متد ()strftime در پایتون -- به زبان ساده

4. رشته‌ای که به متد ()strftime پاس داده می‌شود ممکن است حاوی بیش از یک کد فرمت باشد.

متد ()strftime در پایتون -- به زبان ساده

مثال ۲: ساخت رشته از یک timestamp

1from datetime import datetime
2
3timestamp = 1528797322
4date_time = datetime.fromtimestamp(timestamp)
5
6print("Date time object:", date_time)
7
8d = date_time.strftime("%m/%d/%Y, %H:%M:%S")
9print("Output 2:", d)	
10
11d = date_time.strftime("%d %b, %Y")
12print("Output 3:", d)
13
14d = date_time.strftime("%d %B, %Y")
15print("Output 4:", d)
16
17d = date_time.strftime("%I%p")
18print("Output 5:", d)

خروجی حاصل از اجرای قطعه کد بالا، به صورت زیر است.

Date time object: 2018-06-12 09:55:22
Output 2: 06/12/2018, 09:55:22
Output 3: 12 Jun, 2018
Output 4: 12 June, 2018
Output 5: 09AM

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

در جدول زیر، همه کدهای فرمت قابل استفاده، ارائه شده است.

کدمعنامثال
a%نام روز هفته به صورت خلاصهSun, Mon, ...
A%نام روز هفته به صورت کاملSunday, Monday, ...
w%روز هفته به صورت یک عدد0, 1, ..., 6
d%روز هفته به صورت عدد اعشاری01, 02, ..., 31
d-%روز ماه به صورت یک عدد اعشاری با پیش‌صفر1, 2, ..., 30
b%نام روز ماه به صورت خلاصهJan, Feb, ..., Dec
B%نام روز ماه به صورت کاملJanuary, February, ...
m%ماه به صورت عدد اعشاری با پیش‌صفر01, 02, ..., 12
m-%ماه به صورت عدد اعشاری1, 2, ..., 12
y%سال، بدون قرن (۱۰۰)، به صورت عدد اعشاری با پیش‌صفر00, 01, ..., 99
y-%سال، بدون قرن (۱۰۰)، به صورت عدد اعشاری0, 1, ..., 99
Y%سال با قرن به عنوان عدد اعشاری2013, 2019 , ...
H%ساعت (ساعت ۲۴ ساعتی) با صورت عدد اعشاری با پیش‌صفر00, 01, ..., 23
H-%ساعت (ساعت ۲۴ ساعتی) با صورت عدد اعشاری0, 1, ..., 23
I%ساعت (ساعت 12 ساعتی) با صورت عدد اعشاری با پیش‌صفر01, 02, ..., 12
I-%ساعت (ساعت 12 ساعتی) با صورت عدد اعشاری1, 2, ... 12
p%قبل از ظهر یا بعد از ظهر بودن به وقت محلی (AM یا PM)AM, PM
M%دقیقه به صورت عدد اعشاری با پیش‌صفر00, 01, ..., 59
M-%دقیقه به صورت عدد اعشاری0, 1, ..., 59
S%ثانیه به صورت عدد اعشاری با پیش‌صفر00, 01, ..., 59
S-%ثانیه به صورت عدد اعشاری0, 1, ..., 59
f%میکرو ثانیه به صورت عدد اعشاری با پیش‌صفر در سمت چپ.000000 - 999999
z%اختلاف ساعت هماهنگ جهانی به شکل HHMM+ یا HHMM-
Z%نام منطقه زمانی
j%روزِ سال به صورت عدد اعشاری با پیش‌صفر001, 002, ..., 366
j-%روز سال به صورت عدد اعشاری1, 2, ..., 366
U%شماره هفته از سال (با احتساب یکشنبه به عنوان اولین روز هفته)؛ همه روزها در سال جدید پیش از اولین یکشنبه، به عنوان هفته صفر در نظر گرفته می‌شوند.00, 01, ..., 53
W%شماره هفته از سال (با احتساب دوشنبه به عنوان اولین روز هفته)؛ همه روزها در سال جدید پیش از اولین دوشنبه، به عنوان هفته صفر در نظر گرفته می‌شوند.00, 01, ..., 53
c%ارائه تاریخ و زمان محلی مناسب.Mon Sep 30 07:06:05 2013
x%ارائه تاریخ محلی مناسب.09/30/13
X%ارائه زمان محلی مناسب.07:06:05
%%یک کاراکتر لفظی (لیترال) %%

مثال ۳: تاریخ و ساعت محلی مناسب

1from datetime import datetime
2
3timestamp = 1528797322
4date_time = datetime.fromtimestamp(timestamp)
5
6d = date_time.strftime("%c")
7print("Output 1:", d)	
8
9d = date_time.strftime("%x")
10print("Output 2:", d)
11
12d = date_time.strftime("%X")
13print("Output 3:", d)

خروجی حاصل از اجرای برنامه بالا، به صورت زیر خواهد بود.

Output 1: Tue Jun 12 09:55:22 2018
Output 2: 06/12/18
Output 3: 09:55:22

کدهای فرمت x ،%c% و X% برای ارائه تاریخ و ساعت محلی مورد استفاده قرار می‌گیرند. شایان توجه است که از متد ()strptime نیز برای ساخت یک شی datetime از یک رشته، می‌توان استفاده کرد.

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Programiz
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *