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().