Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การทำงานกับวันที่และเวลา (Dates and Times) ใน Python

โมดูล datetime ใน standard library ครอบคลุมการจัดการวันที่/เวลาครบถ้วน

1. วันที่/เวลาปัจจุบัน

from datetime import datetime

now = datetime.now()
print(now)                    # 2024-01-15 14:30:45.123456
print(type(now))              # 

2. แปลง String ↔ Datetime

# String → datetime
dt_str = '2024-01-30 14-30-59'
dt_obj = datetime.strptime(dt_str, "%Y-%m-%d %H-%M-%S")
print(dt_obj)  # 2024-01-30 14:30:59

# datetime → String
dt_str2 = datetime.strftime(dt_obj, "%Y-%m-%d %H:%M:%S")
print(dt_str2)  # 2024-01-30 14:30:59

3. ดึงส่วนประกอบต่างๆ

dt = datetime(2024, 1, 30, 14, 30, 59)
print(dt.year)           # 2024
print(dt.month)          # 1
print(dt.day)            # 30
print(dt.hour)           # 14
print(dt.minute)         # 30
print(dt.second)         # 59
print(dt.strftime("%A")) # Tuesday
print(dt.strftime("%B")) # January

4. Date Arithmetic (timedelta)

from datetime import datetime, timedelta

today = datetime.now()
print("Today:", today)

future = today + timedelta(days=5)
print("5 days later:", future)

past = today - timedelta(weeks=2)
print("2 weeks ago:", past)

# ความต่างระหว่างสองวัน
d1 = datetime(2024, 5, 12)
d2 = datetime(2023, 6, 16)
diff = d1 - d2
print("Difference:", diff)  # 331 days, 0:00:00
print("Days:", diff.days)   # 331

5. เปรียบเทียบวันที่

d1 = datetime(2024, 1, 1)
d2 = datetime(2024, 12, 31)
print(d1 < d2)   # True
print(d1 > d2)   # False

สรุป

datetime + timedelta + strftime/strptime ครอบคลุมทุกความต้องการพื้นฐาน