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

Cách chuyển đổi JS Date sang Python date object

Quy trình chung

  1. JS: chuyển Date → ISO string (toISOString()).
  2. Gửi qua network (AJAX, WebSocket, IPC).
  3. Python: parse ISO string bằng datetime.fromisoformat() (Py 3.7+) hoặc strptime.

JavaScript (Client)

var jsDate = new Date(); // ví dụ: 2023-12-01T10:30:00.000Z
var isoString = jsDate.toISOString(); // "2023-12-01T10:30:00.000Z"
// Gửi isoString lên server

Python (Server)

from datetime import datetime

# Python 3.7+ (khuyên dùng)
date_string = '2023-12-01T10:30:00.000Z'
# Xử lý Z timezone
if date_string.endswith('Z'):
    date_string = date_string[:-1] + '+00:00'
dt = datetime.fromisoformat(date_string)
print(dt) # 2023-12-01 10:30:00

# Python 3.6 hoặc format tùy chỉnh
date_string = '2017-12-31'
date_format = '%Y-%m-%d'
try:
    dt = datetime.strptime(date_string, date_format)
    print(dt) # 2017-12-31 00:00:00
except ValueError:
    print("Sai format, kỳ vọng YYYY-MM-DD")

Bảng format strptime phổ biến

DirectiveÝ nghĩa
%YNăm 4 chữ số (2023)
%mTháng 01-12
%dNgày 01-31
%HGiờ 24h 00-23
%MPhút 00-59
%SGiây 00-59
%fMicrosecond 000000-999999
%zTimezone offset (+0000)

Best practice

  • Luôn dùng ISO 8601 (toISOString()) trao đổi ngày giờ.
  • Lưu trữ UTC, chuyển timezone chỉ khi hiển thị.
  • Python: dateutil.parser.isoparse() linh hoạt hơn fromisoformat.