ما در اوایل به صورت مختصر درباره strftime () و strptime () صحبت کردیم ، اما بیایید نگاهی دقیق به این روش ها بیندازیم ، زیرا این روش ها اغلب برای کار تجزیه و تحلیل داده ها در پایتون مهم هستند.
strptime () روشی است که ما قبلاً از آن استفاده می کردیم ، و شما به یاد خواهید آورد که می تواند تاریخ و زمانی را که به عنوان رشته متنی قالب بندی شده است ، در قالب زیر به یک شی object از زمان تبدیل کند:
time.strptime (رشته ، قالب)
توجه داشته باشید که دو استدلال طول می کشد:
- رشته - زمانی در قالب رشته که می خواهیم تبدیل کنیم
- قالب - قالب بندی خاص زمان در رشته ، به طوری که strptime () می تواند آن را به درستی تجزیه کند
بیایید این بار نوع متفاوتی از تاریخ را تبدیل کنیم.:
# import datetime
from datetime import datetime
date_string = "1 August, 2019"
# format date
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object: ", date_object)
خروجی:
date_object: 2019-08-01 00:00:00
حالا بیایید نمونه ای دیگر را آزمایش کنینم ما ابتدا با یک تاریخ در قالب رشته شروع می کنیم ، آن را به یک شی تاریخ تبدیل می کنیم و به چند روش مختلف برای قالب بندی آن (dd / mm و mm / dd) نگاه می کنیم.
سپس ، با قالب بندی mm / dd ، آن را به یک زمان مشخص یونیکس تبدیل خواهیم کرد. سپس ما آن را دوباره به یک شی datetime تبدیل می کنیم و با استفاده از چند الگوی مختلف strftime برای کنترل خروجی ، آن را دوباره به رشته تبدیل می کنیم:
# import datetime
from datetime import datetime
dt_string = "12/11/2018 09:15:32"
# Considering date is in dd/mm/yyyy format
dt_object1 = datetime.strptime(dt_string, "%d/%m/%Y %H:%M:%S")
print("dt_object1:", dt_object1)
# Considering date is in mm/dd/yyyy format
dt_object2 = datetime.strptime(dt_string, "%m/%d/%Y %H:%M:%S")
print("dt_object2:", dt_object2)
# Convert dt_object2 to Unix Timestamp
timestamp = datetime.timestamp(dt_object2)
print('Unix Timestamp: ', timestamp)
# Convert back into datetime
date_time = datetime.fromtimestamp(timestamp)
d = date_time.strftime("%c")
print("Output 1:", d)
d = date_time.strftime("%x")
print("Output 2:", d)
d = date_time.strftime("%X")
print("Output 3:", d)
خروجی:
dt_object1: 2018-11-12 09:15:32 dt_object2: 2018-12-11 09:15:32 Unix Timestamp: 1544537732.0 Output 1: Tue Dec 11 09:15:32 2018 Output 2: 12/11/18 Output 3: 09:15:32
در اینجا تصویری وجود دارد که می توانید با یک صفحه تقلب برای الگوهای رایج و مفید strptime و strftime ذخیره کنید:
بیایید کمی بیشتر با استفاده از این موارد تمرین کنیم:
# current date and time
now = datetime.now()
# get year from date
year = now.strftime("%Y")
print("Year:", year)
# get month from date
month = now.strftime("%m")
print("Month;", month)
# get day from date
day = now.strftime("%d")
print("Day:", day)
# format time in HH:MM:SS
time = now.strftime("%H:%M:%S")
print("Time:", time)
# format date
date_time = now.strftime("%m/%d/%Y, %H:%M:%S")
print("Date and Time:",date_time)
خروجی:
Year: 2019 Month; 10 Day: 25 Time: 11:56:41 Date and Time: 10/25/2019, 11:56:41