Python วันที่ เวลา เวลาDelta, Strftime (รูปแบบ) พร้อมตัวอย่าง
⚡ สรุปอย่างชาญฉลาด
Python โมดูล datetime ร่วมกับคลาส date, time และ timedelta จัดการวันที่ เวลา และช่วงเวลาในรูปแบบของอ็อบเจ็กต์ โมดูล datetime จัดรูปแบบเอาต์พุตด้วย strftime() แยกวิเคราะห์สตริง และคำนวณช่วงเวลาในอนาคตหรืออดีตโดยใช้เลขคณิต timedelta

In Python, วันที่ เวลา และวันที่และเวลา คลาสต่างๆ มีฟังก์ชันมากมายสำหรับจัดการกับวันที่ เวลา และช่วงเวลา เช่น ฟังก์ชัน date และ datetime ในคลาสนี้ Python เป็นอ็อบเจ็กต์ ดังนั้นเมื่อคุณจัดการกับมัน คุณกำลังจัดการกับอ็อบเจ็กต์จริงๆ ไม่ใช่สตริงหรือไทม์สแตมป์ เมื่อใดก็ตามที่คุณจัดการกับวันที่หรือเวลา คุณจำเป็นต้องนำเข้าโมดูล datetime
คลาส datetime ใน Python แบ่งออกเป็น 5 ประเภทหลัก
- date – จัดการเฉพาะวันที่ (เดือน วัน ปี)
- เวลา – เวลาไม่ขึ้นอยู่กับวัน (ชั่วโมง นาที วินาที ไมโครวินาที)
- datetime – การรวมกันของเวลาและวันที่ (เดือน วัน ปี ชั่วโมง วินาที ไมโครวินาที)
- timedelta— ระยะเวลาที่ใช้สำหรับการจัดการวันที่
- tzinfo— บทคัดย่อtracคลาส t สำหรับจัดการกับเขตเวลา
วิธีใช้คลาสวันที่และวันที่และเวลา
ขั้นตอนที่ 1) ก่อนที่คุณจะรันโค้ดสำหรับรูปแบบ datetime ใน Pythonสิ่งสำคัญคือคุณต้องนำเข้าไฟล์ Python โมดูลวันที่และเวลาตามที่แสดงในภาพหน้าจอด้านล่าง
คำสั่งนำเข้าเหล่านี้เป็นฟังก์ชันการทำงานที่กำหนดไว้ล่วงหน้าใน Python ไลบรารีที่ช่วยให้คุณแก้ไขวันที่และเวลาได้โดยไม่ต้องเขียนโค้ดใดๆ
พิจารณาประเด็นต่อไปนี้ก่อนที่จะดำเนินการ Python รหัสรูปแบบวันที่และเวลา
from datetime import date
บรรทัดนี้บอก. Python ล่ามเพื่อนำเข้าคลาสวันที่จากโมดูล datetime มา Pythonเราไม่ได้เขียนโค้ดสำหรับฟังก์ชันแสดงวันที่นี้เอง แต่เราเพียงแค่เรียกใช้งานฟังก์ชันนี้เพื่อใช้งานเท่านั้น
พิมพ์วันที่โดยใช้ date.today()
ฟังก์ชัน date.today() มีคุณสมบัติหลายอย่าง เราสามารถแสดงวัน/เดือน/ปี และข้อมูลอื่นๆ ได้อีกมากมาย
มาดูตัวอย่างกัน
เลขวันธรรมดาของวันนี้
ฟังก์ชัน date.today() ยังให้หมายเลขวันในสัปดาห์ด้วย นี่คือตารางวันในสัปดาห์ซึ่งเริ่มต้นด้วย Monday โดยวันอาทิตย์เป็นเวลา 0 นาฬิกา และวันอาทิตย์เป็นเวลา 6 นาฬิกา
| โหมดสว่าง | หมายเลขวันประจำสัปดาห์ |
|---|---|
| Monday | 0 |
| อังคาร | 1 |
| วันพุธ | 2 |
| วันพฤหัสบดี | 3 |
| วันศุกร์ | 4 |
| วันเสาร์ | 5 |
| วันอาทิตย์ | 6 |
Weekday Number มีประโยชน์สำหรับอาร์เรย์ที่ดัชนีขึ้นอยู่กับวันในสัปดาห์
ขั้นตอนที่ 2) ต่อไป เราสร้างอินสแตนซ์ของวัตถุวันที่
ขั้นตอนที่ 3) ต่อไปเราจะพิมพ์วันที่และรันโค้ด
ผลลัพธ์เป็นไปตามที่คาดไว้
Python วันที่และเวลาปัจจุบัน: now() today()
ขั้นตอน 1) เช่นเดียวกับ Date Objects เราก็สามารถใช้ได้เช่นกัน “วัตถุวันที่และเวลา” in Python. Python วัตถุวันที่และเวลาให้วันที่พร้อมกับเวลาใน ชั่วโมง นาที วินาที และมิลลิวินาที
เมื่อเรารันโค้ดสำหรับวันที่และเวลา มันจะให้เอาต์พุตพร้อมวันที่และเวลาปัจจุบัน
ขั้นตอน 2) ด้วย “DATETIME OBJECT” คุณยังสามารถเรียกใช้คลาสเวลาได้อีกด้วย สมมติว่าเราต้องการพิมพ์เฉพาะเวลาปัจจุบันโดยไม่รวมวันที่
t = datetime.time(datetime.now())
- เราได้นำเข้าคลาสเวลาแล้ว เราจะกำหนดค่าเวลาปัจจุบันให้กับมันโดยใช้ datetime.now()
- เรากำลังกำหนดค่าของเวลาปัจจุบันให้กับตัวแปร t
และนี่จะให้เวลาฉันเท่านั้น เรามารันโปรแกรมนี้กัน
โอเค คุณจะเห็นว่าตรงนี้ฉันมีวันที่และเวลา และบรรทัดถัดไป ฉันมีแค่เวลาอย่างเดียว
ขั้นตอน 3) เราจะใช้ตัวระบุวันในสัปดาห์กับรายการอาร์เรย์ของวันในสัปดาห์เพื่อระบุว่าวันนี้คือวันอะไร
- ตัวดำเนินการวันในสัปดาห์ (wd) จะได้รับหมายเลขตั้งแต่ (0-6) ขึ้นอยู่กับว่าวันในสัปดาห์ปัจจุบันคือวันอะไร ในที่นี้เราได้ประกาศอาร์เรย์ของรายการวัน (จันทร์ อังคาร พุธ…อาทิตย์)
- ใช้ค่าดัชนีนั้นเพื่อดูว่าเป็นวันไหน ในกรณีของเรา คือ #2 และหมายถึงวันพุธ ดังนั้นในผลลัพธ์จะพิมพ์ออกมาว่า “วันพุธคืออะไร”
นี่คือรหัสที่สมบูรณ์เพื่อรับวันที่และเวลาปัจจุบันโดยใช้ datetime ทันที
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print (today) # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd=date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print("Today is day number %d" % wd) print("which is a " + days[wd]) if __name__== "__main__": main()
วิธีจัดรูปแบบวันที่และเวลาเอาต์พุตด้วย Strftime()
จนถึงตอนนี้ เราได้เรียนรู้วิธีการใช้ datetime และ date แล้ว วัตถุใน Python- เราจะก้าวไปอีกขั้นและเรียนรู้วิธีใช้ฟังก์ชันการจัดรูปแบบเพื่อจัดรูปแบบเวลาและวันที่
ขั้นตอน 1) ขั้นแรกเราจะดูขั้นตอนง่ายๆ ในการจัดรูปแบบปี เป็นการดีกว่าที่จะเข้าใจด้วยตัวอย่าง
- เราใช้ ฟังก์ชัน “strftime” สำหรับการจัดรูปแบบ
- ฟังก์ชั่นนี้ใช้ความแตกต่าง รหัสควบคุม เพื่อให้ผลลัพธ์
- รหัสควบคุมแต่ละรหัสจะคล้ายกับพารามิเตอร์ที่แตกต่างกัน เช่น ปี เดือน วันในสัปดาห์ และวันที่ [(%y/%Y – ปี), (%a/%A- วันทำงาน), (%b/%B- เดือน), (%d – วันของเดือน)]
- ในกรณีของเราก็คือ (“%Y”) ซึ่งคล้ายกับปี โดยจะพิมพ์ทั้งปีพร้อมกับศตวรรษ (เช่น 2018)
ขั้นตอน 2) ตอนนี้ถ้าคุณแทนที่ (“%Y”) ด้วยตัวพิมพ์เล็ก เช่น ( “%y) และรันโค้ด ผลลัพธ์จะแสดงเฉพาะ (18) ไม่ใช่ (2018) ศตวรรษของปีจะไม่แสดงดังที่แสดงในภาพหน้าจอด้านล่าง
ขั้นตอน 3) ฟังก์ชัน Strf สามารถประกาศวันที่ วัน เดือน และปีแยกกันได้ นอกจากนี้ ด้วยการเปลี่ยนแปลงเล็กน้อยในโค้ดควบคุมในฟังก์ชัน strftime คุณยังสามารถจัดรูปแบบสไตล์ของข้อความได้อีกด้วย
ภายในฟังก์ชัน strftime หากคุณแทนที่ (%a) ด้วยตัวอักษร A ตัวใหญ่ เช่น (%A) ผลลัพธ์จะแสดงเป็น “Friday” แทนที่จะเป็นเพียงตัวย่อ “Fri”
ขั้นตอน 4) ด้วยความช่วยเหลือของฟังก์ชัน "Strftime" เรายังสามารถดึงข้อมูลเวลา วันที่ หรือทั้งสองของระบบภายในเครื่องได้
- %C- ระบุวันที่และเวลาท้องถิ่น
- %x- ระบุวันที่ท้องถิ่น
- %X- ระบุเวลาท้องถิ่น
ในผลลัพธ์คุณสามารถเห็นผลลัพธ์ตามที่คาดไว้
ขั้นตอน 5) ฟังก์ชัน “strftime” ช่วยให้คุณสามารถเรียกเวลาในรูปแบบใดก็ได้ 24 ชั่วโมงหรือ 12 ชั่วโมง
เพียงกำหนดโค้ดควบคุม เช่น %I/H สำหรับชั่วโมง % M สำหรับนาที %S สำหรับวินาที เราสามารถเรียกเวลาสำหรับรูปแบบที่แตกต่างกันได้
12 ชั่วโมง ประกาศเวลาแล้ว [พิมพ์ now.strftime(“%I:%M:%S %p) ]
24 ชั่วโมง ประกาศเวลาแล้ว [พิมพ์ now.strftime(“%H:%M”)]
นี่คือรหัสที่สมบูรณ์ในการแปลง datetime เป็นวัตถุ String
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print(now.strftime("%c")) print(now.strftime("%x")) print(now.strftime("%X")) ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print(now.strftime("%I:%M:%S %p")) # 12-Hour:Minute:Second:AM print(now.strftime("%H:%M")) # 24-Hour:Minute if __name__== "__main__": main()
Timedelta คืออะไร Python?
ไทม์เดลต้าใน Python `timedelta` เป็นอ็อบเจ็กต์ที่แสดงถึงระยะเวลา โดยส่วนใหญ่ใช้ในการคำนวณระยะเวลาระหว่างสองวันที่และเวลา นอกจากนี้ยังใช้ในการเรียกค้นอ็อบเจ็กต์ที่มีวันที่และเวลาที่ต่างกัน อ็อบเจ็กต์ `timedelta` รองรับการดำเนินการทางคณิตศาสตร์ เช่น การบวก การลบtracการคำนวณ การคูณ การหาร เป็นต้น
วิธีการใช้ Timedelta Objects
ด้วยระบบเส้นทาง Python วัตถุ timedelta คุณสามารถประมาณเวลาสำหรับทั้งอนาคตและอดีตได้ กล่าวอีกนัยหนึ่ง มันเป็นช่วงเวลาในการทำนายวัน วันที่ หรือเวลาพิเศษใดๆ
โปรดจำไว้ว่าฟังก์ชันนี้ไม่ได้มีไว้สำหรับพิมพ์เวลาหรือวันที่ แต่ใช้สำหรับคำนวณเกี่ยวกับอนาคตหรืออดีตลองมาดูกัน Python ตัวอย่าง timedelta เพื่อให้เข้าใจได้ดียิ่งขึ้น
ขั้นตอน 1) ในการเรียกใช้ Timedelta Objects คุณต้องประกาศคำสั่งนำเข้าก่อน จากนั้นจึงดำเนินการโค้ด
- เขียนคำสั่งนำเข้าสำหรับ timedelta
- ตอนนี้เขียนโค้ดเพื่อพิมพ์วัตถุจากเดลต้าเวลาตามที่แสดงในภาพหน้าจอ
- รันโค้ด timedelta แสดงช่วงเวลา 365 วัน 8 ชั่วโมง 15 นาที และแสดงผลลัพธ์แบบเดียวกัน
น่าสับสนใช่ไหม? ขั้นตอนต่อไปจะช่วย-
ขั้นตอน 2) มาดูวันที่และเวลาของวันนี้เพื่อตรวจสอบว่าใบแจ้งยอดการนำเข้าของเราทำงานได้ดีหรือไม่ เมื่อมีการดำเนินการโค้ด ระบบจะพิมพ์วันที่ของวันนี้ออกมา ซึ่งหมายความว่าใบแจ้งยอดการนำเข้าของเราทำงานได้ดี
ขั้นตอน 3) เราจะมาดูว่าเราสามารถดึงข้อมูลวันที่หนึ่งปีจากนี้ผ่านวัตถุเดลต้าได้อย่างไร เมื่อเรารันโค้ด ผลลัพธ์ที่ได้ก็จะเป็นไปตามที่คาดหวัง
ขั้นตอน 4) ตัวอย่างอื่น ๆ ของการใช้เดลต้าเวลาเพื่อคำนวณวันที่ในอนาคตจากวันที่และเวลาปัจจุบัน
ขั้นตอน 5) มาดูตัวอย่างที่ซับซ้อนกว่านี้กัน ฉันอยากจะทราบว่าอีกกี่วันหลังจากปีใหม่ เราจะดำเนินการดังต่อไปนี้
- การใช้ today= date.today() เราจะได้ dates date
- เรารู้ว่าปีใหม่คือวันที่ 1 มกราคมเสมอ แต่ปีอาจแตกต่างกัน การใช้ nyd= date(today.year,1,1) จะเก็บปีใหม่ไว้ในตัวแปร nyd
- ถ้า nyd < today: ตรวจสอบว่าวันที่ปัจจุบันมากกว่าปีใหม่หรือไม่ ถ้าใช่ จะเข้าสู่ลูป while
- ((today-nyd).days) ให้ค่าความแตกต่างระหว่างวันที่ปัจจุบันและปีใหม่ในหน่วย DAYS
ผลลัพธ์แสดงว่า “วันปีใหม่ผ่านไปแล้วเมื่อ 11 วันก่อน”
นี่คือรหัสการทำงานที่สมบูรณ์
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print (timedelta(days=365, hours=8, minutes=15)) # print today's date print ("today is: " + str(datetime.now())) # print today's date one year from now print ("one year from now it will be:" + str(datetime.now() + timedelta(days=365))) # create a timedelta that uses more than one argument # print (in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4))) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print ("New Year day is already went by %d days ago" % ((today - nyd).days))
Python 2 ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงการดำเนินการเกี่ยวกับวันที่และเวลาแบบเดียวกันที่เขียนขึ้นสำหรับ Python 2 ซึ่ง print เป็นคำสั่ง ไม่ใช่ฟังก์ชัน ควรใช้เวอร์ชันเหล่านี้เฉพาะเมื่อต้องการบำรุงรักษาเวอร์ชันเก่าเท่านั้น Python รหัส 2
from datetime import date from datetime import time from datetime import datetime def main(): ##DATETIME OBJECTS #Get today's date from datetime class today=datetime.now() #print today # Get the current time #t = datetime.time(datetime.now()) #print "The current time is", t #weekday returns 0 (monday) through 6 (sunday) wd = date.weekday(today) #Days start at 0 for monday days= ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"] print "Today is day number %d" % wd print "which is a " + days[wd] if __name__== "__main__": main()
# #Example file for formatting time and date output # from datetime import datetime def main(): #Times and dates can be formatted using a set of predefined string #Control codes now= datetime.now() #get the current date and time #%c - local date and time, %x-local's date, %X- local's time print now.strftime("%c") print now.strftime("%x") print now.strftime("%X") ##### Time Formatting #### #%I/%H - 12/24 Hour, %M - minute, %S - second, %p - local's AM/PM print now.strftime("%I:%M:%S %p") # 12-Hour:Minute:Second:AM print now.strftime("%H:%M") # 24-Hour:Minute if __name__== "__main__": main()
# # Example file for working with timedelta objects # from datetime import date from datetime import time from datetime import datetime from datetime import timedelta # construct a basic timedelta and print it print timedelta(days=365, hours=8, minutes=15) # print today's date print "today is: " + str(datetime.now()) # print today's date one year from now print "one year from now it will be:" + str(datetime.now() + timedelta(days=365)) # create a timedelta that uses more than one argument # print "in one week and 4 days it will be " + str(datetime.now() + timedelta(weeks=1, days=4)) # How many days until New Year's Day? today = date.today() # get todays date nyd = date(today.year, 1, 1) # get New Year Day for the same year # use date comparison to see if New Year Day has already gone for this year # if it has, use the replace() function to get the date for next year if nyd < today: print "New Year day is already went by %d days ago" % ((today - nyd).days)



















