Mục lục
Trong lập trình việc phải xử lý các dữ liệu về thời gian là rất thường xuyên, tuy nhiên rất nhiều người vừa tiếp xúc với nó cảm thấy lúng túng vì có quá nhiều khái niệm khó hiểu. Việc không hiểu rõ những khái niệm đó sẽ rất dễ đưa chúng ta đến những sai lầm khi phát triển các tính năng cho ứng dụng.
Vì vậy, qua bài viết này chúng ta sẽ cùng tìm hiểu một khái niệm xuất hiện rất thường xuyên khi xử lý dữ liệu về thời gian đó là giờ UTC
Giờ UTC nghĩa là gì?
UTC là chữ viết tắt của Coordinated Universal Time. Nghĩa là thời gian phối hợp quốc tế được cơ quan Đo lường Quốc tế (BIPM) đề xuất làm cơ sở pháp lý để định vị thời gian.
Thế giới được chia thành khoảng 24 múi giờ. Tùy theo vị trí địa ly, một số tiểu bang, khu vực hoặc quốc gia chia thời gian của họ thành 1/2. Ví dụ như hàn quốc lấy múi giờ UTC+08:30 từ năm 1954 to 1961.
UTC được dựa trên tiêu chuẩn múi giờ cũ là giờ trung bình Greenwich hay GMT vào thế kỷ thứ 19, sau đó được đổi tên thành Universal Time có nghĩa là giờ quốc tế.
Sự khác biệt giữa GMT và UTC
Múi giờ GMT thường được sử dụng thay thế cho UTC. Vậy sự khác biệt giữa GMT và múi giờ UTC là gì? Mặc dù GMT và UTC chia sẻ cùng múi thời gian hiện tại trong thực tế, những có một sự khác biệt cơ bản giữa hai loại:
- GMT là múi giờ chính thức được sử dụng ở một số nước châu Âu và châu Phi. Thời gian có thể được hiển thị theo kiêu 24 giờ (0 – 24) hoặc 12 giờ (1 – 12 giờ sáng / chiều). GMT dựa trên chuyển động của Trái đất, chủ yếu là vòng quay hàng ngày của nó.
- UTC không phải là múi giờ, mà là tiêu chuẩn thời gian làm cơ sở để định vị thời gian và múi giờ hoạt động trên toàn thế giới. UTC gần giống như GMT, nhưng nó dựa trên định nghĩa khoa học của giây (giây SI của đồng hồ nguyên tử), không phụ thuộc vào thời gian Trái đất quay. Ngoài ra, cũng không có quốc gia hay lãnh thổ nào chính thức sử dụng UTC làm giờ địa phương.
Mục đích sử dụng của múi giờ UTC
Các múi giờ trên toàn thế giới được thể hiện bằng cách sử dụng các độ lệch dương hoặc âm từ UTC, như trong danh sách các múi giờ theo UTC bên dưới.
Múi giờ cực tây sử dụng UTC − 12, chậm hơn UTC mười hai giờ; múi giờ cực đông, sử dụng UTC + 14, sớm hơn UTC mười bốn giờ. Vào năm 1995, quốc đảo Kiribati đã chuyển những đảo san hô trong Quần đảo Line từ UTC – 10 sang UTC + 14 để thời gian cả quốc đảo sẽ diễn ra trong cùng một ngày.
UTC được sử dụng trong nhiều tiêu chuẩn Internet và World Wide Web. Giao thức đồng bộ thời gian mạng (NTP), được thiết kế để đồng bộ hóa đồng hồ của máy tính qua Internet, truyền thông tin thời gian từ hệ thống UTC.
UTC cũng là tiêu chuẩn thời gian được sử dụng trong hàng không, ví dụ: cho kế hoạch bay và khoảng giãn cách kiểm soát không lưu (air traffic control clearance). Dự báo thời tiết và bản đồ đều sử dụng UTC để tránh nhầm lẫn về múi giờ và thời gian tiết kiệm ánh sáng ban ngày (DST). Trạm vũ trụ quốc tế cũng sử dụng UTC làm tiêu chuẩn thời gian.
UTC cũng được sử dụng trong máy đo tốc độ kỹ thuật số được sử dụng trên các phương tiện vận chuyển hàng hóa lớn (LGV) theo quy định của EU và AETR
Giờ UTC và giờ Việt Nam cách nhau mấy tiếng?
Cách chuyển đổi giờ UTC sang giờ Việt Nam thực chất rất đơn giản. Việt Nam nằm trong múi giờ Đông Dương (Indochina Time – ICT) bao gồm các quốc gia: Lào, Thái Lan, Campuchia, Indonesia và Việt Nam. Do đó múi giờ UTC của việt nam sẽ là UTC + 7, nghĩa là UTC đi chậm hơn so với Việt Nam 7 tiếng đồng hồ.
Cách lấy giờ UTC trong Java
Java hiện nay cung cấp rất nhiều cách để có thể truy xuất giờ UTC cũng giờ địa phương tại bất cứ múi giờ nào được chỉ định. Để lấy giờ UTC trong Java chúng ta có thể sử dụng ZonedDateTime, ngoài ra chúng ta cũng có thể sử dụng nó để lấy thời gian cụ thể tại một múi giờ được chỉ định.
public class Main { public static void main(String[] args) { ZonedDateTime utc = ZonedDateTime.now(ZoneOffset.UTC); System.out.println("UTC = " + utc.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); ZonedDateTime vn = ZonedDateTime.now(ZoneId.of("Asia/Bangkok")); System.out.println("Viet Nam = " + vn.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } }
Output
UTC = 2021-09-28 16:00:02 Viet Nam = 2021-09-28 23:00:02
Như kết quả chúng ta có thể thấy múi giờ sử dụng tại Việt Nam có khoảng cách lớn hơn 7h so với giờ UTC.
Nguồn tham khảo
https://en.wikipedia.org/wiki/UTC%2B08:30
Giờ UTC là gì? Giờ UTC và giờ Việt Nam cách nhau mấy tiếng?