On this page
วันที่ 16 — วันที่และเวลา (Python DateTime)
👋 อ่านฟรีทั้งหมดบน Aph's Blog — เนื้อหาภาษาไทย ทำตามทีละหน้าใน sidebar ได้เลย หากมีข้อเสนอแนะหรืออยากให้เพิ่มหัวข้อไหน บอกได้เสมอ
เรียนรู้การจัดการวันที่และเวลาใน Python ด้วย datetime module ตั้งแต่การดึงข้อมูลวันเวลา การ format ด้วย strftime จนถึง timedelta
Python datetime
Python มี module ชื่อ datetime สำหรับจัดการวันที่และเวลา
การดึงข้อมูล datetime
python
from datetime import datetime
now = datetime.now()
print(now) # 2021-07-08 07:34:46.549883
day = now.day # 8
month = now.month # 7
year = now.year # 2021
hour = now.hour # 7
minute = now.minute # 38
second = now.second
timestamp = now.timestamp()
print(day, month, year, hour, minute)
print('timestamp', timestamp)
print(f'{day}/{month}/{year}, {hour}:{minute}') # 8/7/2021, 7:38การ Format วันที่ด้วย strftime
strftime ใช้ format เวลาเป็น string ที่อ่านง่าย:
python
from datetime import datetime
new_year = datetime(2020, 1, 1)
print(new_year) # 2020-01-01 00:00:00
day = new_year.day
month = new_year.month
year = new_year.year
hour = new_year.hour
minute = new_year.minute
second = new_year.second
print(day, month, year, hour, minute) # 1 1 2020 0 0
print(f'{day}/{month}/{year}, {hour}:{minute}') # 1/1/2020, 0:0การ format ด้วย format strings ต่าง ๆ:
python
from datetime import datetime
now = datetime.now()
t = now.strftime("%H:%M:%S")
print("time:", t)
time_one = now.strftime("%m/%d/%Y, %H:%M:%S")
# mm/dd/YY H:M:S format
print("time one:", time_one)
time_two = now.strftime("%d/%m/%Y, %H:%M:%S")
# dd/mm/YY H:M:S format
print("time two:", time_two)
การแปลง String เป็น Datetime ด้วย strptime
strptime ใช้แปลง string เป็น datetime object:
python
from datetime import datetime
date_string = "5 December, 2019"
print("date_string =", date_string)
date_object = datetime.strptime(date_string, "%d %B, %Y")
print("date_object =", date_object)การใช้ date จาก datetime
python
from datetime import date
d = date(2020, 1, 1)
print(d)
print('Current date:', d.today()) # 2019-12-05
# date object of today
today = date.today()
print("Current year:", today.year) # 2019
print("Current month:", today.month) # 12
print("Current day:", today.day) # 5Time Object เพื่อแสดงเวลา
python
from datetime import time
# time(hour = 0, minute = 0, second = 0)
a = time(10, 30, 50)
print(a)
print('hour:', a.hour) # 10
print('minute:', a.minute) # 30
print('second:', a.second) # 50ความแตกต่างระหว่างสองช่วงเวลาด้วย timedelta
python
from datetime import date, timedelta
today = date(year=2019, month=12, day=5)
new_year = date(year=2020, month=1, day=1)
time_left_for_new_year = new_year - today
print('Time left for new year: ', time_left_for_new_year) # 27 days, 0:00:00
print('Time left for new year: ', time_left_for_new_year.days) # 27python
from datetime import datetime
t1 = datetime(year = 2019, month = 12, day = 5, hour = 0, minute = 59, second = 0)
t2 = datetime(year = 2020, month = 1, day = 1, hour = 0, minute = 0, second = 0)
diff = t2 - t1
print('Time left for new year:', diff) # 26 days, 23: 01: 00python
from datetime import timedelta
t1 = timedelta(weeks=12, days=10, hours=4, seconds=20)
t2 = timedelta(days=7, hours=5, minutes=3, seconds=30)
t3 = t1 - t2
print("t3 =", t3) # 88 days, 22:56:50💻 แบบฝึกหัด — วันที่ 16
- ดึง year, month, weekday, hour, minute และ timestamp จาก datetime module ของเวลาปัจจุบัน
- Format วันที่ปัจจุบันในรูปแบบ "%m/%d/%Y, %H:%M:%S"
- วันนี้เป็น 5 ธันวาคม 2019 เปลี่ยน string เวลานี้เป็น time format
- คำนวณความต่างระหว่างเวลาปัจจุบันกับปีใหม่
- คำนวณความต่างระหว่าง 1 มกราคม 1970 กับวันนี้
- คิดว่าทำอะไรกับ datetime module ได้บ้าง ลองค้นหา example เพิ่มเติม