วันที่และเวลา ในภาษา Python

24 December 2020

ในบทนี้ คุณจะได้เรียนรู้เกี่ยวกับวันที่และเวลาในภาษา Python เราจะพูดถึงการทำงานพื้นฐานเกี่ยวกับวันที่และเวลา เช่น การแสดงเวลาปัจจุบัน การบวกลบเวลา เขตเวลา และแนะนำคลาสและเมธอดเกีี่ยวกับวันที่และเวลา นี่เป็นเนื้อหาในบทนี้

  • วันที่และเวลาปัจจุบัน
  • การสร้างออบเจ็ควันที่และเวลา
  • Unix timestamp
  • การบวกลบวันที่และเวลา
  • คลาสและโมดูลเกี่ยวกับวันที่และเวลา

วันที่และเวลาปัจจุบัน

ในการเขียนโปรแกรมเกี่ยวกับเวลา สิ่งแรกที่เรามักทำคือการแสดงวันที่และเวลาปัจจุบันออกทางหน้าจอเพื่อแจ้งให้ผู้ใช้งานโปรแกรมได้ทราบ สำหรับตัวอย่างแรกในบทนี้ เราจะมาเขียนโปรแกรมเพื่อแสดงวันที่และเวลาปัจจุบันออกทางหน้าจอในภาษา Python

current_time.py
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 หรือจัดรูปแบบการแสดงผลของเวลาได้

timeinfo.py
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

create_date.py
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 มีเมธอดสนับสนุนการสร้างวันที่จากรูปแบบดังกล่าว ยกตัวอย่างเช่น

create_date2.py
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 ของเวลาปัจจุบันและจากออบเจ็คของวันที่เพื่อนำมาใช้งานในโปรแกรม

current_timestamp.py
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 นี่เป็นตัวอย่าง

delta_time.py
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 เท่านั้น นี่เป็นอีกตัวอย่าง

timedelta_internal_data.py
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 ออบเจ็ค

time_addition.py
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 นี่จะทำให้เราได้เวลาใหม่ถอยหลังไปจากช่วงของเวลาที่ลบออกไป นี่เป็นตัวอย่างของโปรแกรมเพื่อหาว่าการก่อสร้างอาคารนี้ได้เริ่มต้นเมื่อไหร่

time_subtraction.py
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 ใช้ในการทำข้อสอบครั้งนี้

time_difference.py
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 เราได้พูดถึงการนำค่าวันที่และเวลาปัจจุบันในระบบมาใช้ในโปรแกรมเพื่อแสดงผลหรือคำนวณ การสร้างออบเจ็คของเวลากับค่าวันที่และเวลาแบบกำหนดเอง และการดำเนินการกับเวลาเช่น การบวกและการลบเวลา

บทความนี้เป็นประโยชน์หรือไม่?Yes·No