Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Cách lấy chuỗi ngày ISO 8601 trong Python

Định dạng ISO 8601 (ví dụ: 2017-12-31T00:00:00) là tiêu chuẩn quốc tế cho ngày giờ. Python hỗ trợ sẵn qua phương thức isoformat().

Python 3: Dùng isoformat()

from datetime import datetime

now = datetime.now()
print(now.isoformat())
# Kết quả: 2018-01-02T22:08:12.510696

Có thể truyền tham số timespec để kiểm soát độ chính xác:

print(now.isoformat(timespec='seconds'))   # 2018-01-02T22:08:12
print(now.isoformat(timespec='milliseconds')) # 2018-01-02T22:08:12.510
print(now.isoformat(timespec='microseconds')) # 2018-01-02T22:08:12.510696

Python 2 (hoặc tùy chỉnh): Dùng strftime()

from datetime import datetime

now = datetime.now()
# Format ISO cơ bản
print(now.strftime('%Y-%m-%dT%H:%M:%S.%f'))
# Kết quả: 2018-01-02T22:10:05.284208

Để có timezone offset (ví dụ +07:00), datetime phải aware (có tzinfo):

from datetime import datetime, timezone

now_utc = datetime.now(timezone.utc)
print(now_utc.isoformat())  # 2018-01-02T15:08:12.510696+00:00

Tóm tắt

  • Python 3.6+: dt.isoformat(timespec='...') linh hoạt nhất.
  • Python 2/3 cũ: dt.strftime('%Y-%m-%dT%H:%M:%S.%f%z') (cần datetime aware cho %z).
  • Luôn ưu tiên isoformat() vì chuẩn chuẩn, ít lỗi hơn format thủ công.