فرمت سازی خروجی زمانی

  • مدرس: علی بیگدلی
  • تاریخ انتشار: 1402/05/04
  • تعداد بازدید: 165

ما در اوایل به صورت مختصر درباره 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