متد ()strftime در پایتون — به زبان ساده
در این مطلب، چگونگی تبدیل تاریخ، ساعت و تاریخ-ساعت به رشته معادل با آن، در «زبان برنامهنویسی پایتون» (Python Programming Language) و با بهرهگیری از مثالهای متعدد آموزش داده شده است. در واقع، متد ()strftime در پایتون مورد بررسی قرار خواهد گرفت.
متد ()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 دسترسی داشته باشد.
2. شی datetime حاوی تاریخ و ساعت کنونی ذخیره شده در متغیر now است.
3. متد ()strftime برای ساخت رشتههای قالببندی شده قابل استفاده است.
4. رشتهای که به متد ()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 از یک رشته، میتوان استفاده کرد.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون
- آموزش تکمیلی برنامهنویسی پایتون
- مجموعه آموزشهای دادهکاوی و یادگیری ماشین
- زبان برنامهنویسی پایتون (Python) — از صفر تا صد
- یادگیری علم داده (Data Science) با پایتون — از صفر تا صد
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
^^