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

Cách chuyển chuỗi datetime sang timestamp UNIX mili-giây trong Python

Timestamp UNIX mili-giây là số mili-giây tính từ epoch (00:00:00 UTC, 1/1/1970). Python cung cấp nhiều cách chuyển đổi.

1. Lấy thời gian hiện tại dạng mili-giây

import time
milliseconds = int(round(time.time() * 1000))
print(milliseconds)
1514825676008

2. Chuyển đối tượng datetime sang mili-giây

Từ Python 3.3+, datetime.timestamp() trả về giây (float). Nhân 1000 và làm tròn.

from datetime import datetime

dt = datetime(2018, 1, 1)
milliseconds = int(round(dt.timestamp() * 1000))
print(milliseconds)
1514745000000

3. Chuyển chuỗi datetime sang mili-giây

Parse chuỗi thành datetime trước, sau đó dùng cách 2.

from datetime import datetime

date_str = "2018-01-01 12:30:45"
dt = datetime.strptime(date_str, "%Y-%m-%d %H:%M:%S")
ms = int(round(dt.timestamp() * 1000))
print(ms)

Lưu ý quan trọng

  • datetime.timestamp() coi datetime naive (không có timezone) là giờ địa phương.
  • Để tránh sai lệch do múi giờ, hãy gán timezone UTC rõ ràng: dt.replace(tzinfo=timezone.utc).timestamp().
  • Python 2: dùng (dt - datetime(1970,1,1)).total_seconds().