วันที่และเวลา ในภาษา Python
ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับวันที่และเวลาในภาษา Python เราจะพูดถึงการทำงานพื้นฐานเกี่ยวกับวันที่และเวลา เช่น การแสดงเวลาปัจจุบัน การบวกลบเวลา เขตเวลา และแนะนำคลาสและเมธอดเกีี่ยวกับวันที่และเวลา นี่เป็นเนื้อหาในบทนี้
- วันที่และเวลาปัจจุบัน
- การสร้างออบเจ็ควันที่และเวลา
- Unix timestamp
- การบวกลบวันที่และเวลา
- คลาสและโมดูลเกี่ยวกับวันที่และเวลา
วันที่และเวลาปัจจุบัน
ในการเขียนโปรแกรมเกี่ยวกับเวลา สิ่งแรกที่เรามักทำคือการแสดงวันที่และเวลาปัจจุบันออกทางหน้าจอเพื่อแจ้งให้ผู้ใช้งานโปรแกรมได้ทราบ สำหรับตัวอย่างแรกในบทนี้ เราจะมาเขียนโปรแกรมเพื่อแสดงวันที่และเวลาปัจจุบันออกทางหน้าจอในภาษา Python
from datetime import datetime
# Get current date and time
now = datetime.today()
# Display using difference formats
print(now)
print(now.isoformat())
print(now.ctime())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
2020-11-05 02:23:48.841250
2020-11-05T02:23:48.841250
Thu Nov 5 02:23:48 2020
ในตัวอย่างนี้ เราได้แสดงวันที่และเวลาปัจจุบันของระบบออกทางหน้าจอ เมื่อคุณรันตัวอย่างนี้ เวลาที่ได้จะเป็นเวลาปัจจุบันบนคอมพิวเตอร์ของคุณ
from datetime import datetime
เพื่อเข้าถึงวันที่และเวลาในภาษา Python เราสามารถใช้คลาส datetime
ซึ่งเป็นคลาสจากโมดูล datetime
คลาสนี้เป็นคลาสที่เราสามารถนำมาสร้างออบเจ็คของวันที่ที่ประกอบไปด้วยข้อมูลของวันที่และเวลาที่สามารถนำมาใช้งานในโปรแกรมได้
now = datetime.today()
ในคำสั่งนี้เป็นการสร้างออบเจ็คของวันที่โดยการใช้คลาสเมธอด datetime.today()
เมธอดนี้ส่งค่ากลับเป็นออบเจ็คของวันที่ของเวลาปัจจุบันในระบบหรือคอมพิวเตอร์ของเรา
print(now)
print(now.isoformat())
print(now.ctime())
จากนั้นเป็นการรับเอาค่าของเวลาในรูปแบบ String จากการเรียกใช้เมธอดบนออบเจ็ค ถ้าหากเราแสดงค่าออบเจ็คด้วยฟังก์ชัน print()
โดยตรง ค่าที่ได้จะเป็นเวลาในรูปแบบ ISO หรือเราสามารถเรียกผ่านเมธอด isoformat()
ตรงๆ ก็ได้ ส่วนเมธอด ctime()
ส่งค่ากลับเป็นวันที่ในรูปแบบวันที่มาตฐานของภาษา C
นอกจากนี้ เรายังสามารถเรียกใช้งานเมธอดอื่นบนออบเจ็คของวันที่เพื่ออ่านค่าอื่นๆ เกี่ยวกับเวลาได้ ยกตัวอย่างเช่น เราสามารถอ่านค่า Timestamp หรือจัดรูปแบบการแสดงผลของเวลาได้
from datetime import datetime
now = datetime.today()
print(now.timestamp())
print(now.strftime("%d/%m/%Y %H:%M:%S"))
print(now.timetuple())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม สำหรับการใช้งานเมธอดเพื่อเรียกดูข้อมูลเพิ่มเติมเกี่ยวกับออบเจ็คของวันทีี่
1604518694.336215
05/11/2020 02:38:14
time.struct_time(tm_year=2020, tm_mon=11, tm_mday=5, tm_hour=2, tm_min=38, tm_sec=14, tm_wday=3, tm_yday=310, tm_isdst=-1)
ในตัวอย่าง เราสามารถใช้เมธอด timestamp()
เพื่อรับเอาค่าเวลาในรูปแบบ Timestamp จากออบเจ็ควันที่ได้ ส่วนเมธอด strftime()
ใช้สำหรับจัดรูปแบบการแสดงของเวลาตามตัวจัดรูปแบบที่ระบุ หรือการใช้เมธอด struct_time()
ที่จะส่งค่ากลับเป็น Time tuple ที่ประกอบไปด้วยส่วนประกอบต่างๆ ของเวลา
เราจะพูดเกี่ยวกับ Timestamp และการจัดรูปแบบการแสดงผลของเวลาอีกครั้งในอีกไม่ช้านี้ สำหรับตอนนี้มาดูเพิ่มเติมเกี่ยวกับการสร้างออบเจ็คของวันที่และเวลาในภาษา Python กันต่อ
การสร้างออบเจ็คของวันที่และเวลา
ในตัวอย่างก่อนหน้าเราได้พูดถึงการรับเอาวันที่และเวลาปัจจุบันด้วยเมธอด today()
ในตัวอย่างนี้ เราจะพูดถึงการสร้างออบเจ็คจากวันที่และเวลาที่กำหนด โดยการใช้คอนสตรัคเตอร์ของคลาส datetime
ซึ่งนี่อาจมีประโยชน์เมื่อเรามีค่าของวันที่อยู่แล้วอาจจากฐานข้อมูลหรือไฟล์ และต้องการนำมาสร้างเป็นออบเจ็ควันที่เพื่อใช้งานในโปรแกรม
ในตัวอย่างนี้แสดงการสร้างออบเจ็คของวันที่โดยการระบุส่วนของวันที่และเวลาเป็นตัวเลขด้วยคลาสคอนสตรัคเตอร์ datetime
from datetime import datetime
birthDay = datetime(1980, 3, 12, 10, 0, 0)
chrismasDay = datetime(2020, 12, 25)
print("My birth day: %s" % birthDay.ctime())
print("Christmas day: %s" % chrismasDay.ctime())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
My birth day: Wed Mar 12 10:00:00 1980
Christmas day: Fri Dec 25 00:00:00 2020
ในตัวอย่างนี้ เป็นการสร้างออบเจ็คของวันที่จากคลาส datetime
สำหรับเก็บค่าวันเกิดและวันคริสมาสต์โดยการใช้คลาสคอนสตรัคเตอร์ ในการสร้างวันที่ด้วยวิธีนี้ จะทำให้เราสามารถสร้างออบเจ็คของวันที่สำหรับช่วงเวลาใดๆ ก็ได้ ซึ่งคอนสตรัคเตอร์จะรับพารามิเตอร์โดยมีรูปแบบดังนี้
datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None, *, fold=0)
เราจะต้องระบุส่วนต่างๆ ของเวลาที่ต้องการสร้างโดยเรียงจาก ปี เดือน และวัน ตามลำดับ ซึ่งค่าของวันที่ในสามพารามิเตอร์แรกจะต้องถูกส่งเสมอ ส่วนพารามิเตอร์ที่เหลือสามาารถที่จะละเว้นได้ ถ้าหากเราไม่ส่งค่าเริ่มต้นที่เป็น 0
จะถูกใช้แทนเหมือนกับในออบเจ็ค chrismasDay
ในบางกรณี คุณอาจต้องการสร้างวันที่จากรูปแบบอื่นๆ นอกจากตัวเลข ยกตัวอย่างเช่น เราอาจมีค่าของวันที่ที่เป็น String ในรูปแบบของ ISO หรือค่าเวลา Timestamp ซึ่งคลาส datetime
มีเมธอดสนับสนุนการสร้างวันที่จากรูปแบบดังกล่าว ยกตัวอย่างเช่น
from datetime import datetime
birthDay = datetime.fromisoformat("1980-03-12T10:00:00")
chrismasDay = datetime.fromtimestamp(1608829200)
print("My birth day: %s" % birthDay.ctime())
print("Christmas day: %s" % chrismasDay.ctime())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
My birth day: Wed Mar 12 10:00:00 1980
Christmas day: Fri Dec 25 00:00:00 2020
ในตัวอย่างนี้ เป็นการสร้างออบเจ็คของวันที่ที่เป็นวันเดียวกันกับในตัวอย่างก่อนหน้า แต่เราได้สร้างวันที่จากค่าของเวลาในรูปแบบ String และ Timestamp แทน และแนะนำการใช้งานสองเมธอดใหม่ที่ใช้ในการสร้าง
birthDay = datetime.fromisoformat("1980-03-12T10:00:00")
เมธอด datetime.fromisoformat()
นั้นเป็นคลาสเมธอดที่ใช้สำหรับสร้างวันที่จาก String ของวันที่ในรูปแบบ ISO เราสามารถใช้มันกับค่าวันที่เพียงอย่างเดียวหรือวันที่ในรูปแบบเต็มก็ได้
chrismasDay = datetime.fromtimestamp(1608829200)
ส่วนเมธอด datetime.fromtimestamp()
ก็เป็นคลาสเมธอดเช่นเดียวกัน แต่เมธอดนี้ใช้สำหรับสร้างออบเจ็คของวันที่จากค่าเวลา Timestamp
ในการใช้งานทั้งสองเมธอดสำหรับสร้างออบเจ็ค เราจะได้ออบเจ็คของวันที่ที่สามารถนำมาใช้งานได้ในโปรแกรมเหมือนกับการรับค่าเวลาจากเมธอด today()
และการสร้างวันที่จากคลาสคอนสตรัคเตอร์ datetime
Unix timestamp
Unix timestamp หรือ Timestamp นั้นเป็นค่าของเวลาในรูปแบบของตัวเลขในหน่วยวินาที ที่เริ่มนับจาก Unix epoch หรือวันที่ 1 มกราคม 1970 เนื่องจาก Timestamp เป็นตัวเลข ดังนั้นเราสามารถใช้มันในการคำนวณ เช่น การบวกลบ หรือการหาผลต่างของเวลาได้
ในตัวอย่างนี้ เราจะมาเขียนโปรแกรมเพื่อรับเอาค่า Timestamp ของเวลาปัจจุบันและจากออบเจ็คของวันที่เพื่อนำมาใช้งานในโปรแกรม
from datetime import datetime
from time import time
# Get current timestamp
ts1 = datetime.today().timestamp()
ts2 = time()
print("Current timestamp")
print(ts1)
print(ts2)
# Creating date from timestamp
# Mon Jun 18 05:28:00 2007
date = datetime.fromtimestamp(1182119280)
print(date)
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Current timestamp
1604522143.585108
1604522143.5851078
2007-06-18 05:28:00
ในตัวอย่างนี้ เป็นการรับเอาค่า Timestamp ปัจจุบันและการสร้างออบเจ็คของวันที่จาก Timestamp ในภาษา Python
ts1 = datetime.today().timestamp()
ts2 = time()
ในการรับเอาค่า Timestamp ปัจจุบันในภาษา Python นั้นสามารถทำได้สองวิธีคือการใช้เมธอด timestamp()
บนออบเจ็คของวันที่ หรือจะใช้ฟังก์ชัน time()
จากโมดูล time
ก็ได้ ทั้งสองรูปแบบให้ผลลัพธ์ที่เหมือนกัน
date = datetime.fromtimestamp(1182119280)
นอกจากนี้เรายังสามารถสร้างออบเจ็คของวันที่จาก Timestamp ได้โดยการใช้คลาสเมธอด datetime.fromtimestamp()
เมธอดนี้ส่งค่ากลับเป็นออบเจ็ควันที่จากค่า Timestamp ดังกล่าว
เราสามารถเรียกใช้งานเมธอด timestamp()
บนออบเจ็คของวันที่ใดๆ เพื่อรับเอาค่าเวลา Timestamp บนออบเจ็คนั้นได้
การบวกลบวันที่และเวลา
เวลาในภาษา Python นั้นสนับสนุนการดำเนินการกับเวลา เช่น การบวกและการลบกันของเวลา สำหรับการดำเนินการเหล่านี้เกี่ยวกับเวลา เราจำเป็นต้องแนะนำให้คุณรู้จักกับ timedelta
ออบเจ็ค
timedelta
ออบเจ็คเป็นออบเจ็คที่ใช้เก็บระยะเวลา หรือความแตกต่างระหว่างสองวันที่หรือช่วงเวลาใดๆ ยกตัวอย่างเช่น เพลงๆ หนึ่งมีความยาว 3 นาที 20 วินาที หรือแสงเดินทางจากดวงอาทิตย์มายังโลกใช้เวลาประมาณ 8 นาที ข้อมูลเหล่านี้สามารถแสดงได้ในรูปแบบของ timedelta
ในภาษา Python นี่เป็นตัวอย่าง
from datetime import timedelta
dt1 = timedelta(minutes = 3, seconds = 20)
dt2 = timedelta(minutes = 8)
print("Duration of a song")
print(dt1)
print("Light travel from the sun to the earth")
print(dt2)
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Duration of a song
0:03:20
Light travel from the sun to the earth
0:08:00
ในตัวอย่างนี้ เราได้สร้างสอง timedelta
ออบเจ็คสำหรับเก็บระยะเวลาของเพลง และระยะเวลาการเดินทางของแสงจากดวงอาทิตย์มายังโลก ในการสร้าง timedelta
ออบเจ็ค เราสามารถระบุเพียง Keyword อาร์กิวเมนต์สำหรับส่วนของเวลาที่ต้องการได้ สำหรับอาร์กิวเมนต์อื่นๆ ที่ไม่ได้ถูกส่งจะมีค่าเริ่มต้นเป็น 0
นี่เป็นรูปแบบเต็มของการสร้าง timedelta
ออบเจ็คในภาษา Python
timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
ในรูปแบบการประกาศออบเจ็ค จะเห็นว่ามีพารามิเตอร์สำหรับหน่วยเวลาต่างๆ ที่สามารถใช้สร้างออบเจ็คได้ อย่างไรก็ตาม สำหรับการเก็บข้อมูลภายในของ timedelta
ออบเจ็คนั้น ค่าที่ถูกเก็บจริงๆ จะมีเพียงแค่ days
, seconds
และ microseconds
เท่านั้น นี่เป็นอีกตัวอย่าง
from datetime import timedelta
dt1 = timedelta(weeks = 2, minutes = 3, seconds = 20)
print("dt1.days: %d" % dt1.days)
print("dt1.seconds: %d" % dt1.seconds)
print("dt1.microseconds: %d" % dt1.microseconds)
print("dt1 Total second: %d" % dt1.total_seconds())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
dt1.days: 14
dt1.seconds: 200
dt1.microseconds: 0
dt1 Total second: 1209800
ในตัวอย่างนี้ แสดงให้เห็นว่า timedelta
ออบเจ็คแปลงอาร์กิวเมนต์ที่เราใช้ในตอนสร้างให้เหลือเพียง days
, seconds
และ microseconds
เท่านั้น เราสามารถเรียกใช้เมธอด total_seconds()
เพื่อรับเอาจำนวนวินาทีทั้งหมดของ timedelta
ออบเจ็คได้
ในภาษา Python การบวกลบออบเจ็คของเวลาจะเกี่ยวกับข้องกับ timedelta
ออบเจ็ค ถ้าหากเราบวกเวลาเข้ากับ timedelta
ออบเจ็ค เราจะได้ผลลัพธ์ของเวลาข้างหน้าตามระยะที่ถูกบวกเข้าไป ในทางกลับกัน เมื่อเราลบเวลาด้วย timedelta
ออบเจ็ค เราจะได้เวลาที่ถอยหลังไปตามระยะเวลาที่ถูกลบออก
ในตัวอย่างนี้มาดูการหาเวลาสิ้นสุดของการเล่นเพลง โดยที่เราทราบเวลาเริ่มต้นและความยาวของเพลงโดยการใช้การบวกวันที่เข้ากับ timedelta
ออบเจ็ค
from datetime import datetime, timedelta
start = datetime(2020, 11, 1, 10, 5, 0)
duration = timedelta(minutes = 3, seconds = 20)
# Result is a new date object
end = start + duration
print("A song started playing at %s" % start.ctime())
min = int(duration.total_seconds() / 60)
sec = duration.total_seconds() % 60
print("With duration of %d minutes and %d seconds" % (min, sec))
print("Time when the song end is %s" % end.ctime())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
A song started playing at Sun Nov 1 10:05:00 2020
With duration of 3 minutes and 20 seconds
Time when the song end is Sun Nov 1 10:08:20 2020
ในตัวอย่างนี้ เป็นการบวกออบเจ็คของเวลาเข้ากับ timedelta
ออบเจ็คซึ่งได้จะผลลัพธ์เป็นออบเจ็คของเวลาใหม่ที่เลื่อนเวลาไปข้างหน้าตามช่วงเวลาที่กำหนดใน timedelta
ออบเจ็ค
start = datetime(2020, 11, 1, 10, 5, 0)
duration = timedelta(minutes = 3, seconds = 20)
เราได้สร้างออบเจ็คของวันที่สำหรับเก็บเวลาเริ่มต้นของการเล่นเพลงๆ หนึ่ง จากนั้นสร้าง timedelta
ออบเจ็คสำหรับเก็บความยาวของเพลงซึ่งมีระยะเวลาเป็น 3 นาทีกับ 20 วินาที
end = start + duration
จากนั้นเป็นการบวกเวลาเริ่มต้นการเล่นกับระยะเวลาของเพลงเข้าด้วยกัน นี่จะทำให้เราได้ออบเจ็คใหม่ซึ่งเป็นเวลาในตอนที่เพลงจบพอดี
นี่เป็นวิธีสำหรับการบวกวันที่และเวลากับ timedelta
ออบเจ็คในภาษา Python เพื่อให้ได้เวลาใหม่โดยอ้างอิงจากออบเจ็คของเวลาที่ต้องการ
ตัวอย่างต่อมาเป็นการลบออบเจ็คของวันที่ด้วย timedelta
นี่จะทำให้เราได้เวลาใหม่ถอยหลังไปจากช่วงของเวลาที่ลบออกไป นี่เป็นตัวอย่างของโปรแกรมเพื่อหาว่าการก่อสร้างอาคารนี้ได้เริ่มต้นเมื่อไหร่
from datetime import datetime, timedelta
completed_date = datetime(2014, 6, 10, 12, 0, 0)
duration = timedelta(days = 453, hours = 4)
started_date = completed_date - duration
print("The construction completed at %s" % completed_date.ctime())
print("The construction started at %s" % started_date.ctime())
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
The construction completed at Tue Jun 10 12:00:00 2014
The construction started at Thu Mar 14 08:00:00 2013
ในตัวอย่างนี้ เป็นโปรแกรมสำหรับคำนวณหาว่าการก่อสร้างเริ่มต้นขึ้นเมื่อไหร่ โดยสิ่งที่เราทราบคือวันที่ที่การก่อสร้างเสร็จสิ้น และระยะเวลาในการก่อสร้าง ดังนั้นการนำสองค่านี้มาลบกันจะทำให้เราได้รับวันที่เริ่มก่อสร้าง
completed_date = datetime(2014, 6, 10, 12, 0, 0)
duration = timedelta(days = 453, hours = 4)
ก่อนอื่นเราได้สร้างออบเจ็คของวันที่สำหรับเก็บวันที่ที่การก่อสร้างเสร็จสิ้นในตัวแปร completed_date
จากนั้นสร้างออบเจ็ค duration
สำหรับเก็บระยะเวลาการก่อสร้างที่ใช้ระยะเวลาทั้งสิ้น 453 วันกับอีก 4 ชั่วโมง
started_date = completed_date - duration
จากนั้นเป็นการลบวันที่ที่การก่อสร้างเสร็จสิ้นด้วยระยะเวลาในการก่อสร้าง จะทำได้เราได้รับเวลาเริ่มต้นของการก่อสร้างอาคารนี้
ในการลบวันที่ด้วยออบเจ็คของ timedelta
ผลลัพธ์ที่ได้จะเป็นออบเจ็คของวันที่ใหม่ที่หักลบออกจากช่วงเวลาใน timedelta
ออบเจ็ค อย่างไรก็ตามการลบเวลาในภาษา Python นั้น เราสามารถลบออบเจ็คของสองวันที่ออกจากกันได้ เมื่อทำเช่นนี้จะทำให้เราได้ผลต่างของเวลาในรูปแบบของ timedelta
ออบเจ็ค
ในตัวอย่างต่อไปนี้ จะเป็นการแสดงวิธีการหาผลต่างของเวลาที่เกิดจากการลบกันระหว่างออบเจ็คของสองวันที่
Mateo ใช้เวลาในการทำข้อสอบเริ่มจาก 8 นาฬิกา 30 นาที และเสร็จสิ้นในตอน 12 นาฬิกา 45 นาที เราต้องการทราบว่าเขาใช้เวลาทั้งหมดในการทำข้อสอบเท่าไร นี่เป็นตัวอย่างของโปรแกรมสำหรับคำนวณหาระยะทั้งหมดที่ Mateo ใช้ในการทำข้อสอบครั้งนี้
from datetime import datetime, timedelta
# Test started
start = datetime(2020, 11, 5, 8, 30, 0)
# Test ended
end = datetime(2020, 11, 5, 12, 45, 0)
# Result is a timedelta object
diff = end - start
print("Time started %s " % start.ctime())
print("Time finihsed %s " % end.ctime())
total_seconds = diff.total_seconds()
print("Time used to finish the test is %d seconds" % total_seconds)
# Format time by ourselves
hour = int(total_seconds / 3600)
min = int(total_seconds % 3600 / 60)
sec = int(total_seconds % 60)
print("Or %d hours %d mins %s secs" % (hour, min, sec))
นี่เป็นผลลัพธ์การทำงานของโปรแกรม
Time started Thu Nov 5 08:30:00 2020
Time finished Thu Nov 5 12:45:00 2020
Time used to finish the test is 15300 seconds
Or 4 hours 15 mins 0 secs
ในตัวอย่างนี้ เป็นการหาผลต่างของเวลาสองช่วงเวลาโดยการนำเวลามาลบกัน ผลลัพธ์ที่ได้จากการลบกันของออบเจ็คของเวลาคือ timedelta
ออบเจ็ค
start = datetime(2020, 11, 5, 8, 30, 0)
end = datetime(2020, 11, 5, 12, 45, 0)
เรามีออบเจ็คของวันที่สำหรับเก็บเวลาเริ่มต้นและสิ้นสุดของการทำข้อสอบ เนื่องจากวันเริ่มต้นและวันสิ้นสุดเป็นวันเดียวกัน เราสามารถกำหนดวันที่เป็นอะไรก็ได้
diff = end - start
จากนั้นเป็นการนำออบเจ็คของเวลาทั้งสองมาลบกัน นี่จะได้ผลลัพธ์เป็น timedelta
ออบเจ็คที่เป็นผลต่างระหว่างวันที่ทั้งสอง นั่นคือเวลาทั้งหมดที่ Mateo ใช้ในการทำข้อสอบนั่นเอง
total_seconds = diff.total_seconds()
print("Time used to finish the test is %d seconds" % total_seconds)
เราสามารถใช้เมธอด total_seconds()
เพื่อดูผลต่างของเวลาในหน่วยวินาที แต่เนื่องจากการแสดงเวลาในหน่วยของนาทีนั้นยากต่อการอ่าน เราจึงจัดรูปแบบการแสดงผลของเวลาโดยเริ่มจากหน่วยที่ใหญ่ที่สุดก่อนดังนี้
hour = int(total_seconds / 3600)
min = int(total_seconds % 3600 / 60)
sec = int(total_seconds % 60)
print("Or %d hours %d mins %s secs" % (hour, min, sec))
เนื่องจากเรามีเวลาทั้งหมดเป็นวินาที เราสามารถนำมันแยกออกเป็นหน่วยของชั่วโมง นาที และวินาทีได้ ซึ่งการแสดงผลแบบนี้จะทำให้เข้าใจง่ายกว่า
คลาสและโมดูลเกี่ยวกับวันที่และเวลา
ในภาษา Python ยังมีคลาสอื่นๆ เกี่ยวกับวันที่และเวลาที่ยังไม่ได้พูดถึงในบทนี้ แต่จะแนะนำให้คุณรู้จักกับคลาสเหล่านั้นไว้ก่อน นี่เป็นรายชื่อของคลาสส่วนหนึ่งที่สามารถใช้ได้เมื่อต้องการทำงานกับวันที่และเวลาในภาษา Python
- คลาส
timedelta
เป็นออบเจ็คสำหรับเก็บระยะเวลาหรือผลต่างของเวลา - คลาส
date
เป็นออบเจ็คที่เก็บข้อมูลเกี่ยวกับวันที่เท่านั้น คุณสามารถใช้คลาสนี้ได้เมื่อไม่ต้องการข้อมูลเกี่ยวกับเวลา - คลาส
time
เป็นออบเจ็คที่เก็บข้อมูลเกี่ยวกับเวลาเท่านั้น คุณสามารถใช้คลาสนี้ได้เมื่อไม่ต้องการข้อมูลเกี่ยวกับวันที่ - คลาส
datetime
เป็นออบเจ็คที่เก็บข้อมูลทั้งวันที่และเวลา ซึ่งเป็นคลาสที่ใช้บ่อยและคุณได้รู้จักกับมันแล้วในบทนี้ - คลาส
timezone
เป็นออบเจ็คของเขตเวลาที่ใช้กำหนดเขตเวลาให้กับออบเจ็ควันที่และเวลา
ในการเขียนโปรแกรม โดยทั่วไปแล้วมักใช้งานคลาส datetime
เป็นหลัก แต่ในบางกรณี คุณอาจต้องการทำงานกับวันที่หรือเวลาเท่านั้น ในกรณีดังกล่าว คุณสามารถอ่านเพิ่มเติมเกี่ยวกับคลาสเฉพาะเหล่านี้ได้ที่นี่ https://docs.python.org/3/library/datetime.html
ในบทนี้ คุณได้เรียนรู้เกี่ยวกับวันที่และเวลาในภาษา Python เราได้พูดถึงการนำค่าวันที่และเวลาปัจจุบันในระบบมาใช้ในโปรแกรมเพื่อแสดงผลหรือคำนวณ การสร้างออบเจ็คของเวลากับค่าวันที่และเวลาแบบกำหนดเอง และการดำเนินการกับเวลาเช่น การบวกและการลบเวลา