Initializing, please wait a moment
So sánh múi giờ và offset UTC trong số đo này.
Múi giờ và offset UTC, nhìn nhanh.

Mili giây sang ngày: UTC vs giờ địa phương, và vì sao có thể trông sai

Công cụ chuyển đổi mili giây sang ngày miễn phí nhận một timestamp Unix tính bằng mili giây và trả về ngày giờ dễ đọc. Hầu hết sự nhầm lẫn của độc giả không phải về việc chuyển đổi - mà là về múi giờ nào mà chuỗi dễ đọc đại diện.

Hướng dẫn này đặt tên bốn giá trị bạn luôn nên đọc cùng nhau và đưa ra một kiểm tra sức khỏe 30 giây để bạn không bao giờ gửi đi một ngày lệch vài giờ.

Múi giờOffset UTC (chuẩn)1713538800000 theo giờ dia phuong
UTC+00:002024-04-19 15:00:00
Asia/Bangkok (TH)+07:002024-04-19 22:00:00
America/Los_Angeles (US)-07:00 (PDT)2024-04-19 08:00:00
Europe/London (UK)+01:00 (BST)2024-04-19 16:00:00

Câu trả lời trong 30 giây. Một timestamp như 1713538800000 không có múi giờ - nó đếm số mili giây từ 1970-01-01T00:00:00 UTC. Số này không di chuyển. Cái di chuyển là hiển thị: trong UTC cùng số đó đọc là "19 tháng 4 năm 2024, 15:00:00", trong Asia/Bangkok (UTC+7) độc là "22:00:00", và trong America/Los_Angeles (UTC-7) độc là "08:00:00". Khi ngày đã chuyển đổi "trông như lệch vài giờ", timestamp vẫn đúng - bạn đang đọc nhầm cột.

Vì sao cùng một timestamp hiển thị ngày khác nhau

Một timestamp Unix mili giây đếm số mili giây trôi qua từ Unix epoch, cố định tại 1970-01-01T00:00:00 UTC. Số này không mang múi giờ hay lịch. Mỗi hệ thống hiển thị nó chọn múi giờ riêng cho đầu ra dễ đọc: trình duyệt của bạn dùng locale của HĐH, máy chủ dùng locale của container, cơ sở dữ liệu SQL dùng múi giờ của session, và log JSON dùng gì mà người viết định dạng. Cong cu chuyên đối mili giay sáng ngay hiển thị cả UTC và giờ địa phương của bạn để bạn thấy offset trong nháy mắt.

Bốn giá trị luôn đọc cùng nhau

So sánh bốn giá trị luôn đọc cùng nhau qua bốn điểm trong biểu đồ này.
Bốn giá trị luôn đọc cùng nhau at a glance.
  • Số gốc (1713538800000) - không múi giờ. Lưu cái này trong cơ sở dữ liệu, gửi qua HTTP APIs, ghi log. Nó không bao giờ bị trôi.
  • Ngày/giờ UTC (2024-04-19T15:00:00Z) - hiển thị chuẩn. Dùng trong log kiểm toán, báo cáo xuyên vùng, và bất kỳ gì được chia sẻ giữa các đội.
  • Ngày/giờ địa phương (2024-04-19 22:00:00 +07:00) - cái người dùng cuối thấy. Dùng cho email, lịch sự và hiển thị cho độc giả.
  • ISO 8601 với offset (2024-04-19T22:00:00+07:00) - an toàn vòng tròn. Bao gồm đồng hồ và offset, để parser downstream có thể khôi phục dùng khoảnh khắc.

Kiểm tra sức khỏe 30 giây trước khi gửi ngày

Xem kiểm tra sức khỏe 30 giây trước khi gửi ngày qua bốn điểm này.
Kiểm tra sức khỏe 30 giây trước khi gửi ngày at a glance.
  1. Xác nhận đầu vào là mili giây, không phải giây. Số 13 chữ số là mili giây; số 10 chữ số là giây. Xem so dai - mili giay hay giay? để biết quy tắc.
  2. Ghi chú giá trị UTC mà công cụ chuyển đổi trả về. Day là cau tra lỗi chuan, không múi giờ.
  3. Cộng offset địa phương vào UTC (ví dụ +07:00 cho Bangkok, -08:00 cho Los Angeles, có tính giờ mùa hè). Giá trị địa phương nên khớp.
  4. Nếu giá trị địa phương không khớp, múi giờ HĐH của bạn được đặt khác với giả định của bạn. Điều chỉnh HĐH hoặc diễn giải UTC trực tiếp.

UTC vs địa phương trong thực tế

Dùng UTC cho lưu trữ và truyền tải. Cột cơ sở dữ liệu, JSON qua HTTP, tệp log, dấu vết kiểm toán. Giá trị UTC không trôi qua các chuyển đổi giờ mùa hè và không thay đổi theo vùng triển khai.

Chỉ dùng giờ địa phương để hiển thị. Lịch sự kiện, email cho người dùng, nhắc nhở. Chuyển sang địa phương ở tầng render, không phải ở tầng lưu trữ. Cùng một dòng cơ sở dữ liệu sẽ hiển thị là 22:00 giờ Bangkok và 08:00 giờ LA - điều đó đúng, không phải lỗi.

Dùng ISO 8601 với offset cho các trường hợp trung gian. Khi bạn gửi một giá trị đến hệ thống downstream có thể không biết múi giờ người dùng, hãy ưu tiên dạng ISO có kèm offset. Tránh văn bản tự do "19 tháng 4 lúc 22 giờ" - không thể parse.

Các hướng dẫn đồng hành

See bốn hướng dẫn thời gian liên quan: Long Number, Unix Timestamps, ms-to-date, Current Time in ms
Hướng dẫn liên quan: Long Number, Unix Timestamps, Milliseconds tô Date, Current Time.

Câu hỏi thường gặp

Vì sao công cụ chuyển đổi hiển thị hai giờ khác nhau cho cùng một đầu vào?

Chúng là cùng một khoảnh khắc trong các múi giờ khác nhau. So nay không múi giờ; giá tri UTC là hien thì chuẩn và giá tri dia phương là cung khoảnh khac do nhin tự mũi giờ HDH của ban. Sự khác biệt là offset địa phương.

Giờ địa phương trông sai - làm sao tôi sửa?

Giờ địa phương là bất cứ thứ gì HĐH của bạn báo cáo là múi giờ hiện tại. Nếu laptop của bạn được đặt sang Singapore nhưng bạn mong đợi Bangkok, giá trị địa phương sẽ lệch một giờ. Điều chỉnh múi giờ HĐH, hoặc diễn giải giá trị UTC và áp dụng offset mà bạn thực sự muốn.

Giờ mùa hè có thay đổi chuyển đổi không?

Có - với bất kỳ múi giờ nào quan sát DST, offset địa phương dịch chuyển một giờ hai lần mỗi năm. Giá trị UTC không bao giờ thay đổi. Hai timestamp từ hai phía của một ranh giới DST trông cách nhau một giờ trong giờ địa phương ngay cả khi số mili giây trôi qua là đúng.

Tôi có thể lưu giờ địa phương trực tiếp trong cơ sở dữ liệu không?

Có, nhưng hiếm khi là ý tưởng tốt. Lưu UTC và render địa phương tại nơi đọc là chuẩn; nó sống qua việc chuyển máy chủ, thay đổi vùng và chuyển đổi DST. Lưu giờ địa phương buộc mỗi người đọc phải biết người viết ở múi giờ nào - thường là mất.

Có gì được gửi đến máy chủ không?

Việc chuyển đổi chạy trong trình duyệt của bạn; đầu vào mili giây và các chuỗi kết quả ở lại trên thiết bị của bạn. Điều này quan trọng khi timestamp xác định một sự kiện nhạy cảm mà bạn không muốn ghi log.