Python วันที่ เวลา เวลาDelta, Strftime (รูปแบบ) พร้อมตัวอย่าง
คลาส datetime ใน Python แบ่งออกเป็น 5 คลาสหลัก
- date – จัดการเฉพาะวันที่ (เดือน วัน ปี)
- เวลา – เวลาไม่ขึ้นอยู่กับวัน (ชั่วโมง นาที วินาที ไมโครวินาที)
- datetime – การรวมกันของเวลาและวันที่ (เดือน วัน ปี ชั่วโมง วินาที ไมโครวินาที)
- timedelta— ระยะเวลาที่ใช้สำหรับการจัดการวันที่
- tzinfo— คลาสนามธรรมสำหรับจัดการกับเขตเวลา
วิธีใช้คลาสวันที่และวันที่และเวลา
ขั้นตอนที่ 1) ก่อนที่คุณจะรันโค้ดสำหรับรูปแบบ datetime ใน Pythonสิ่งสำคัญคือคุณต้องนำเข้าไฟล์ Python โมดูลวันที่และเวลาตามที่แสดงในภาพหน้าจอด้านล่าง
คำสั่งนำเข้าเหล่านี้เป็นฟังก์ชันการทำงานที่กำหนดไว้ล่วงหน้าใน Python ไลบรารี่ที่ให้คุณจัดการวันที่และเวลาได้โดยไม่ต้องเขียนโค้ดใดๆ
พิจารณาประเด็นต่อไปนี้ก่อนที่จะดำเนินการ Python รหัสรูปแบบวันที่และเวลา
from datetime import date
บรรทัดนี้บอก. Python ล่ามเพื่อนำเข้าคลาสวันที่จากโมดูล datetime มา Python- เราไม่ได้เขียนโค้ดสำหรับฟังก์ชันวันที่นี้ แต่เป็นเพียงการนำเข้าโค้ดสำหรับการใช้งานของเรา
ขั้นตอนที่ 2) ต่อไป เราสร้างอินสแตนซ์ของวัตถุวันที่
ขั้นตอนที่ 3) ต่อไปเราจะพิมพ์วันที่และรันโค้ด
ผลลัพธ์เป็นไปตามที่คาดไว้
พิมพ์วันที่โดยใช้ date.today()
date.today
ฟังก์ชั่นมีคุณสมบัติหลายประการที่เกี่ยวข้องกัน เราพิมพ์ได้เป็นรายบุคคล วัน/เดือน/ปี และอื่นๆ อีกมากมาย
มาดูตัวอย่างกัน
เลขวันธรรมดาของวันนี้
ฟังก์ชัน date.today() ยังแสดงหมายเลขวันทำงานอีกด้วย นี่คือตารางวันทำงานซึ่งเริ่มต้นด้วย Monday เป็น 0 และวันอาทิตย์เป็น 6
โหมดสว่าง | หมายเลขวันประจำสัปดาห์ |
---|---|
Monday | 0 |
อังคาร | 1 |
วันพุธ | 2 |
วันพฤหัสบดี | 3 |
วันศุกร์ | 4 |
วันเสาร์ | 5 |
วันอาทิตย์ | 6 |
Weekday Number มีประโยชน์สำหรับอาร์เรย์ที่ดัชนีขึ้นอยู่กับวันในสัปดาห์
Python วันที่และเวลาปัจจุบัน: now() today()
ขั้นตอน 1) เช่นเดียวกับ Date Objects เราก็สามารถใช้ได้เช่นกัน “วัตถุวันที่และเวลา” in Python. Python วัตถุวันที่และเวลาให้วันที่พร้อมกับเวลาใน ชั่วโมง นาที วินาที และมิลลิวินาที
เมื่อเรารันโค้ดสำหรับวันที่และเวลา มันจะให้เอาต์พุตพร้อมวันที่และเวลาปัจจุบัน
ขั้นตอน 2) ด้วย "DATETIME OBJECT" คุณสามารถเรียกคลาสเวลาได้
สมมติว่าเราต้องการพิมพ์เฉพาะเวลาปัจจุบันโดยไม่มีวันที่
t = datetime.time(datetime.now())
- เราได้นำเข้าคลาสเวลาแล้ว เราจะกำหนดค่าเวลาปัจจุบันให้กับมันโดยใช้ datetime.now()
- เรากำลังกำหนดค่าของเวลาปัจจุบันให้กับตัวแปร t
และนี่จะให้เวลาฉันเท่านั้น เรามารันโปรแกรมนี้กัน
โอเค คุณจะเห็นได้ว่าที่นี่ฉันได้รับวันที่และเวลา แล้วบรรทัดถัดไป ฉันมีเวลาเพียงลำพัง
ขั้นตอน 3) เราจะใช้ตัวสร้างดัชนีวันทำงานของเรากับ arrayList ของวันทำงานเพื่อดูว่าวันนี้เป็นวันอะไร
- ตัวดำเนินการวันธรรมดา (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) ขั้นแรกเราจะดูขั้นตอนง่ายๆ ในการจัดรูปแบบปี เป็นการดีกว่าที่จะเข้าใจด้วยตัวอย่าง
- เราใช้ “ฟังก์ชันสตริฟไทม์” สำหรับการจัดรูปแบบ
- ฟังก์ชั่นนี้ใช้ความแตกต่าง รหัสควบคุม เพื่อให้ผลลัพธ์
- รหัสควบคุมแต่ละรหัสมีลักษณะคล้ายกับพารามิเตอร์ที่แตกต่างกัน เช่น ปี เดือน วันในสัปดาห์ และวันที่ [(%y/%Y – ปี), (%a/%A- วันทำงาน), (%b/%B- เดือน), (%d – วันของเดือน)]
- ในกรณีของเราก็คือ (“%Y”) ซึ่งคล้ายกับปี โดยจะพิมพ์ทั้งปีพร้อมกับศตวรรษ (เช่น 2018)
ขั้นตอน 2) ตอนนี้ถ้าคุณแทนที่ (“%Y”) ด้วยตัวพิมพ์เล็ก เช่น ( “%y) และรันโค้ด ผลลัพธ์จะแสดงเฉพาะ (18) ไม่ใช่ (2018) ศตวรรษของปีจะไม่แสดงดังที่แสดงในภาพหน้าจอด้านล่าง
ขั้นตอน 3) ฟังก์ชัน Strf สามารถประกาศวันที่ วัน เดือน และปีแยกกันได้ นอกจากนี้ ด้วยการเปลี่ยนแปลงเล็กน้อยในโค้ดควบคุมในฟังก์ชัน strftime คุณสามารถจัดรูปแบบสไตล์ของข้อความได้
ภายในฟังก์ชัน strftime หากคุณแทนที่ (%a) ด้วยตัวพิมพ์ใหญ่ A เช่น (%A) ผลลัพธ์จะพิมพ์ออกมาเป็น “Firday” แทนที่จะเป็นเพียงตัวย่อ “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 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 < วันนี้: เปรียบเทียบว่าวันที่ปัจจุบันมากกว่าปีใหม่หรือไม่ ถ้าใช่ จะเข้าสู่ลูป 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 ตัวอย่าง
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)
สรุป
สำหรับการจัดการวันที่และเวลาทั้งในรูปแบบที่เรียบง่ายและซับซ้อน โมดูล datetime จัดเตรียมคลาสหรือหมวดหมู่ต่างๆ เช่น
- date – จัดการเฉพาะวันที่ (เดือน วัน ปี)
- เวลา – เวลาไม่ขึ้นอยู่กับวัน (ชั่วโมง นาที วินาที ไมโครวินาที)
- datetime – การรวมกันของเวลาและวันที่ (เดือน วัน ปี ชั่วโมง วินาที ไมโครวินาที)
- timedelta— ระยะเวลาที่ใช้สำหรับการจัดการวันที่
- tzinfo— คลาสนามธรรมสำหรับจัดการกับเขตเวลา
การใช้วัตถุ datetime
- การนำเข้าวัตถุ datetime ก่อนที่จะรันโค้ดเป็นสิ่งจำเป็น
- การใช้ฟังก์ชัน date.today ในการพิมพ์วันที่/เดือน/ปีแต่ละรายการ ตลอดจนจัดทำดัชนีวัน
- การใช้ date.time object เพื่อรับเวลาเป็นชั่วโมง นาที วินาที และมิลลิวินาที
การจัดรูปแบบการหมดเวลาด้วย "ฟังก์ชัน str f time"
- ใช้ “ฟังก์ชันเวลา str f” เพื่อเปลี่ยนรูปแบบของปี
- พิมพ์วัน วันที่ เดือน ปี แยกกัน
- เวลาโทรออกสำหรับรูปแบบใด ๆ 12 ชม. หรือ 24 ชม
วัตถุ Timedelta
- ด้วยวัตถุ timedelta คุณสามารถประมาณเวลาสำหรับอนาคตและอดีตได้
- คำนวณจำนวนวันที่เหลือสำหรับวันพิเศษ (วันเกิด) จากเวลาปัจจุบัน
- คำนวณจำนวนวันทั้งหมดที่ผ่านไปสำหรับวันพิเศษ (วันเกิด) จากเวลาปัจจุบัน