Ho Chi Minh
Từ lâu vấn đề xử lý thời hạn đã là một trong chủ đề đem lại nhiều đợt đau đầu cho các developers, đặc biệt nếu cần xử lý thời gian theo rất nhiều múi giờ không giống nhau. Bài viết này để giúp đỡ bạn "đả thông tởm mạch" để thoát khỏi nỗi hại này.
Bạn đang xem: Ho chi minh
Một số thuật ngữ mình sẽ áp dụng trong bài xích viết:
moment: thời gian tuyệt đốirtime (relative/represent time): thời hạn tương đối, hoặc cũng có thể gọi là thời hạn chỉ nhằm hiển thịoffset: độ lệchzone: múi giờCó 2 nhiều loại thời gianĐể hiểu được thực chất vấn đề, bọn họ cần nắm vững 2 định nghĩa sau:
1. Thời hạn tuyệt đối
Là một khoảng khắc rõ ràng (moment) trong chiếc chảy lịch sử.
Khi nói về thời hạn tuyệt đối, cần phải có đủ nhì thành phần: ngày giờ + ngữ cảnh chỗ chốn.
Đêm giao vượt năm 2021 ở nước ta sẽ khác với đêm giao quá 2021 ở Florida (Mỹ). Trong khi bạn sẽ đón giao quá tại Việt Nam, thì khách hàng của chúng ta ở Florida vẫn đang nạp năng lượng trưa - trên Florida đang là 13:00 ngày 31/12.
Ngữ cảnh ngơi nghỉ đây đó là múi tiếng (zone). Những múi giờ được đặc trưng bởi một độ lệch thời hạn (offset) so với giờ kết hợp quốc tế UTC. Độ lệch được màn biểu diễn dưới dạng ±hh:mm.
Việt Nam ở trong múi giờ Đông Dương (Indochina Time - ICT) tất cả độ lệch UTC+07:00 , nghĩa là đồng hồ thời trang ở việt nam chạy cấp tốc hơn 7 giờ so với đồng hồ của UTC.
Trong thứ tính, moment được trình diễn dưới dạng Epoch Seconds - số giây trôi qua kể từ 00:00:00 ngày một tháng 1 năm 1970 theo giờ đồng hồ UTC.
2. Thời hạn tương đối
Là thời gian chỉ dùng để hiển thị (relative/represent time - điện thoại tư vấn ngắn gọn gàng là rtime), không bao gồm ngữ cảnh múi giờ.
Trong sinh hoạt thường xuyên ngày, lúc muốn so sánh thời gian, họ không thể cần sử dụng rtime, mà cần thêm vào trong 1 múi tiếng hoặc một độ lệch nhằm rtime trở nên tuyệt vời nhất (moment) rồi new đem đi so sánh.
moment = rtime + (zone or offset)
Sếp (onsite sinh sống Nhật): bằng hữu hôm ni họp thời gian 4h chiều nhé. Bạn: 4h chiều mặt anh JST - nhật bản Standard Time (UTC+9:00) hay là mặt tụi em ICT (UTC+7:00) ? Sếp: À quên, 4h chiều mặt anh, có nghĩa là 2h chiều bên tụi em đó.
Xem thêm: Hợp Đồng Nguyên Tắc Và Mẫu Hợp Đồng Nguyên Tắc Cung Cấp Dịch Vụ
Sau lúc đã minh bạch được rtime và moment, chúng ta sẽ tìm kiếm hiểu cách để biểu diễn chúng.
1. Tiêu chuẩn ISO-8601
Dưới đó là một moment được viết theo tiêu chuẩn chỉnh ISO-8601, bao hàm ngày, giờ và offset

Như vậy, để biểu diễn rtime, bọn họ chỉ yêu cầu bỏ đi phần offset. Với ngược lại, khi lắp offset vào rtime (ngày giờ), bọn họ có moment.
moment = rtime + offset
Để ý chúng ta thấy, moment vào tiêu chuẩn chỉnh ISO-8601 chỉ thực hiện offset cơ mà không đề cập cho tên của múi giờ.
2. IANA Time Zone Database
Hay còn gọi là tz database, là 1 trong những bộ database tổng hợp tin tức của toàn thể múi giờ trên rứa giới, được làm chủ bởi tổ chức triển khai ICANN.
Trong tz database, một múi giờ sẽ mang tên gọi dựa vào vị trí địa lý của nó, theo hình thức Area/Location, trong số ấy area là tên của châu lục hoặc đại dương, location là tên của thành phố hoặc hòn đảo.
Múi giờ đồng hồ ở tp Hồ Chí Minh mang tên là Asia/Ho_Chi_MinhMúi giờ sinh sống Auckland (New Zealand) có tên là Pacific/AucklandTuy nhiên, chưa phải thành phố nào cũng có múi giờ đồng hồ riêng. Tham khảo danh sách khá đầy đủ ở đây.
Lúc này có thể các bạn sẽ hỏi
"Ủa rồi đẻ ra thêm đặc điểm này làm gì? Sao không sử dụng mấy chiếc chữ viết tắt múi giờ (ICT) hay là offset (+7:00) gì đấy á? với hồi nãy ông mới bảo tôi, biểu diễn moment chỉ việc thêm offset vào rtime là đầy đủ - ông lừa tôi à?"
Đúng là nhằm biểu diễn thời gian tuyệt đối, chỉ cần thời gian kha khá (ngày giờ) cùng offset là đủ.
Cuộc sống vẫn cứ yên ả như vậy, giả dụ không xuất hiện khái niệm Daylight Saving Time.
Xem thêm: Lời Bài Hát Biết Nói Là Tại Sao, Biết Nói Là Tại Sao
3. Daylight Saving Time (DST) là mẫu gì?
Nếu bạn chưa biết, một thành phố có thể sử dụng 2 múi giờ đồng hồ luân phiên trong năm.
Tại sao lại có hiện tượng kỳ lạ này?
Daylight Saving Time - hay có cách gọi khác là Quy ước giờ ngày hè / Giờ tiết kiệm chi phí ánh sáng buổi ngày được đề xuất lần đầu xuân năm mới 1784 do Benjamin Franklin. Ông phân biệt vào mùa hè, trời vẫn mau sáng ("Đêm mon 5 không nằm đã sáng")