Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การทำงานกับวันที่และเวลาใน Python


การจัดการวันที่และเวลาเป็นส่วนสำคัญของภาษาการเขียนโปรแกรมใดๆ Python มีไลบรารีมาตรฐานที่มีโมดูล datetime ซึ่งมีคุณสมบัติและฟังก์ชันเกือบทั้งหมดในการคำนวณที่เกี่ยวข้องกับวันที่และเวลา ในตัวอย่างด้านล่าง เราจะมาดูกันว่ามีการใช้แง่มุมต่างๆ ของวันที่และเวลาอย่างไร

การจัดการวันที่ปัจจุบัน

โมดูล datetime มีคลาสชื่อ datetime เราสามารถนำเข้าคลาสนี้และใช้ฟังก์ชันเพื่อสร้างวัตถุ datetime จากนั้นใช้เทคนิคการจัดรูปแบบต่างๆ เพื่อแสดงค่าวันที่และเวลา ขั้นแรก เราสร้างวัตถุ datetime ที่เริ่มต้นด้วยฟังก์ชัน now() ออบเจ็กต์นี้เก็บทุกส่วนของวันที่และเวลาปัจจุบัน จากนั้นเราจะจัดการส่วนต่างๆ ของมัน

ตัวอย่าง

 from datetime import datetimedt_time_obj =datetime.now()# พิมพ์วันที่ปัจจุบัน timeprint(dt_time_obj)# ค้นหาวัตถุ classprint('Object Class :- ',type(dt_time_obj))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

2020-01-22 09:33:02.693863Object Class :-

วันที่และเวลา

เราสามารถแปลงสตริงเป็น datetime และ datetime เป็น string โดยใช้เมธอด strptime และ strftime การแปลงนี้มีความจำเป็นเมื่อเราจัดการกับแหล่งข้อมูลต่าง ๆ ซึ่งข้อมูลอาจไม่ถูกนำเสนอในรูปแบบที่แน่นอนตามที่ python ต้องการเรียกว่าเป็นวันที่เวลา ในตัวอย่างด้านล่าง เราใช้สตริงและแปลงเป็นเวลาวันที่ และทำในสิ่งที่ตรงกันข้าม

ตัวอย่าง

จากการนำเข้าวันที่และเวลา datetimedt_string ='2020-1-30 2-52-59'# สร้างวัตถุวันที่จาก Stringdate_val =datetime.strptime(dt_string, "%Y-%m-%d %H-%M-%S ")print(date_val)print('Class:',type(date_val))print("\n")# สร้างสตริงจากวันที่ Objectdate_val_str =datetime.strftime(date_val, "%Y-%m-%d %H- %M-%S")print(date_val_str)print('Class:',type(date_val_str))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

2020-01-30 02:52:59Class:2020-01-30 02-52-59Class:

การแยกส่วนของค่าวันที่และเวลา

เราสามารถแยกส่วนต่างๆ ของวันที่โดยใช้คำสั่งและวิธี strftime ด้านล่างนี้คือรายการตัวอย่างบางส่วนเกี่ยวกับคำสั่งต่างๆ และจุดประสงค์ สำหรับรายการคำสั่งทั้งหมด โปรดดูเอกสารประกอบของ python ที่นี่

Directive
การใช้งาน
%A
วันธรรมดา
%B
เดือน
%M
นาที
%Y
ปี
%d
วันของเดือน

ตัวอย่างด้านล่างแสดงวิธีการใช้คำสั่ง

ตัวอย่าง

จากการนำเข้าวันที่และเวลา datetimedt_string ='2020-1-30 2-52-59'# สร้างวัตถุวันที่จาก Stringdate_val =datetime.strptime(dt_string, "%Y-%m-%d %H-%M-%S ")#ส่งกลับปีและชื่อของวันทำงาน เดือน วันของเดือน:print(date_val.year)print(date_val.strftime("%d"))print(date_val.strftime("%B"))print(date_val .strftime("%A"),"\n")

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

202030มกราคมวันพฤหัสบดี

วันที่ เวลา เลขคณิต

ต่อไปเราจะดูตัวอย่างการคำนวณที่เกี่ยวข้องกับวันที่และเวลา เราสามารถบวกและลบวัน ชั่วโมง ฯลฯ จากวันที่กำหนดได้ นอกจากนี้เรายังสามารถนำวันที่เป็นข้อมูลเข้าและนำการดำเนินการต่างๆ ไปใช้กับพวกเขาได้

การใช้ TimeDelta

ตัวอย่าง

#import datetimefrom datetime import *# ค้นหา timedt_time_today ปัจจุบัน =datetime.now()print ("Today's date:", str(dt_time_today))#add 5 days to currentnew_date =dt_time_today + timedelta(days =5)print(' หลังจาก 5 วัน:', new_date)#Remove 2 สัปดาห์จาก datetwo_weeks_back ปัจจุบัน =dt_time_today - timedelta(weeks =2)print('Two months ago:', two_weeks_back)print('two_weeks_back object type:', type(two_weeks_back))

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

วันที่ของวันนี้:2020-01-29 12:38:03.290795หลังจาก 5 วัน:2020-02-03 12:38:03.290795สองสัปดาห์ที่ผ่านมา:2020-01-15 12:38:03.290795two_weeks_back ประเภทวัตถุ: 

การใช้โอเปอเรเตอร์

เราสามารถใช้โอเปอเรเตอร์บางตัวได้ระหว่างวันที่สองวัน สามารถดูความแตกต่างของวันที่ได้โดยใช้ตัวดำเนินการลบ และสามารถเปรียบเทียบวันที่ได้โดยใช้ตัวดำเนินการทางตรรกะ

ตัวอย่าง

จาก datetime นำเข้า datetime # ให้ Datesdate1 =datetime (2018,5, 12, 8, 11, 53)date2 =datetime (2017, 6, 16, 12, 43, 27) # ความแตกต่างระหว่างสอง datedate_diff =date1-date2print ("ความแตกต่าง:", date_diff)# การเปรียบเทียบสอง dateprint (date1  

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

ความแตกต่าง:329 วัน, 19:28:26 น.