ToolDeck

Chuyển Đổi Múi Giờ

Chuyển đổi ngày và giờ giữa các múi giờ trên toàn thế giới

UTCUTC+00:00

04/16/2026, 21:57:00

America/New_YorkUTC-04:00

04/16/2026, 17:57:00

Chuyển Đổi Múi Giờ Là Gì?

Công cụ chuyển đổi múi giờ dịch ngày và giờ từ múi giờ này sang múi giờ khác, cho phép bạn xem ngay giờ tương ứng ở bất kỳ nơi nào trên thế giới. Thế giới được chia thành 24 múi giờ chính, mỗi múi giờ được định nghĩa là một độ lệch cố định so với Giờ Phối Hợp Quốc Tế (UTC). Khi UTC là 14:00, đồng hồ ở New York chỉ 09:00 (UTC-5) và ở Tokyo là 23:00 (UTC+9). Để chuyển đổi múi giờ chính xác, bạn cần biết độ lệch UTC của cả múi giờ nguồn lẫn múi giờ đích, cũng như liệu giờ tiết kiệm ánh sáng ban ngày (DST) có đang áp dụng cho một trong hai hay không.

Cơ sở dữ liệu múi giờ IANA (còn gọi là cơ sở dữ liệu Olson hay tz database) là nguồn định nghĩa múi giờ tiêu chuẩn được hệ điều hành, ngôn ngữ lập trình và trình duyệt web sử dụng. Nó gán một định danh chuẩn cho mỗi vùng theo định dạng Khu_Vực/Thành_Phố, ví dụ như America/New_York hay Asia/Tokyo. Khác với các viết tắt cố định như EST hay PST, định danh IANA mã hóa toàn bộ lịch sử thay đổi độ lệch UTC và các lần chuyển đổi DST của từng khu vực, khiến chúng trở thành cách duy nhất đáng tin cậy để chuyển đổi giờ qua các ngày trong quá khứ hoặc tương lai.

Công cụ chuyển đổi múi giờ này sử dụng dữ liệu múi giờ IANA tích hợp trong JavaScript engine của trình duyệt thông qua Intl API. Bạn chọn múi giờ nguồn, nhập ngày và giờ, và công cụ ngay lập tức tính toán giờ tương ứng ở múi giờ đích, bao gồm mọi điều chỉnh tiết kiệm ánh sáng ban ngày. Vì toàn bộ quá trình chạy trong trình duyệt, không có yêu cầu gửi lên máy chủ và không có dữ liệu nào rời khỏi thiết bị của bạn.

Tại Sao Dùng Công Cụ Chuyển Đổi Múi Giờ Này?

Tính toán múi giờ thủ công dễ mắc lỗi, đặc biệt khi có DST. Một thành phố ở UTC-5 vào tháng Một có thể là UTC-4 vào tháng Bảy, và ngày chuyển đổi khác nhau giữa các quốc gia. Hoa Kỳ và châu Âu thay đổi đồng hồ vào các ngày Chủ Nhật khác nhau, tạo ra khoảng thời gian hai tuần khi độ lệch giữa New York và London khác với phần còn lại của năm. Công cụ này xử lý tất cả các lần chuyển đổi đó tự động, sử dụng cùng cơ sở dữ liệu IANA mà hệ điều hành của bạn dùng.

~
Chuyển Đổi Tức Thì
Chọn hai múi giờ, nhập giờ và xem kết quả ngay lập tức. Không cần gửi biểu mẫu, không cần tải lại trang. Kết quả chuyển đổi cập nhật theo thời gian thực khi bạn nhập.
~
Kết Quả Tính Đến DST
Công cụ tự động tính đến các lần chuyển đổi DST. Nó sử dụng dữ liệu múi giờ IANA tích hợp sẵn trong trình duyệt, nên kết quả phản ánh đúng độ lệch cho bất kỳ ngày nào bạn nhập, dù là quá khứ hay tương lai.
~
Xử Lý Ưu Tiên Quyền Riêng Tư
Toàn bộ quá trình chuyển đổi diễn ra cục bộ trong trình duyệt của bạn thông qua Intl API. Không có ngày, giờ hay lựa chọn múi giờ nào được gửi lên bất kỳ máy chủ nào.
~
Không Cần Tài Khoản
Dùng công cụ mà không cần đăng ký, cài đặt phần mềm hay cấp quyền. Mở trang, chuyển đổi giờ và đóng lại.

Các Trường Hợp Sử Dụng Công Cụ Chuyển Đổi Múi Giờ

Lập Lịch Họp Xuyên Quốc Gia
Khi đội nhóm của bạn trải rộng ở New York, Berlin và Singapore, việc tìm giờ họp phù hợp cho tất cả đòi hỏi chuyển đổi qua ba múi giờ trở lên. Nhập giờ đề xuất theo múi giờ địa phương của bạn và xem ngay giờ tương ứng ở vị trí của từng thành viên có nằm trong giờ làm việc của họ hay không.
Gỡ Lỗi Timestamp API
Phản hồi API thường bao gồm timestamp theo UTC hoặc múi giờ của máy chủ. Chuyển đổi các timestamp đó về giờ địa phương của bạn để xác minh các sự kiện xảy ra đúng thời điểm và logic dựa trên thời gian hoạt động chính xác.
Dòng Thời Gian Sự Cố DevOps
Trong một sự cố, các bản ghi log có thể đến từ máy chủ ở các khu vực khác nhau. Chuyển đổi tất cả timestamp về một múi giờ tham chiếu duy nhất (thường là UTC) để xây dựng dòng thời gian chính xác của sự kiện.
Kiểm Thử Logic Ngày Tháng QA
Ứng dụng hiển thị ngày tháng cho người dùng ở các khu vực khác nhau cần được kiểm thử với các đầu vào múi giờ cụ thể. Dùng công cụ chuyển đổi để tạo ra các trường hợp kiểm thử cho các điều kiện biên như giờ chuyển tiếp DST mùa xuân.
Điều Phối Pipeline Dữ Liệu
Các công việc ETL được lập lịch theo một múi giờ có thể cần khớp với lịch của nguồn dữ liệu hoặc bên tiêu thụ dữ liệu ở múi giờ khác. Chuyển đổi thời gian chạy theo lịch để xác minh các giai đoạn pipeline thực thi theo đúng thứ tự.
Học Về Các Khái Niệm Múi Giờ
Sinh viên học về độ lệch UTC, Đường Đổi Ngày Quốc Tế và các quy tắc DST có thể thử nghiệm với các cặp múi giờ khác nhau để thấy giờ thay đổi như thế nào giữa các khu vực.

Tài Liệu Tham Chiếu Múi Giờ IANA

Cơ sở dữ liệu múi giờ IANA định nghĩa hơn 400 định danh múi giờ và được cập nhật nhiều lần mỗi năm để phản ánh các thay đổi chính trị, quy tắc DST mới và các sửa đổi lịch sử. Bảng dưới đây liệt kê các múi giờ được dùng phổ biến nhất cùng độ lệch UTC tiêu chuẩn và hành vi DST. Độ lệch hiển thị là cho giờ tiêu chuẩn; cột DST cho thấy độ lệch được điều chỉnh khi DST đang có hiệu lực ở khu vực đó.

Định Danh IANATên Thông ThườngĐộ Lệch UTCDST
UTCCoordinated Universal Time+00:00No
America/New_YorkEastern Time (US)-05:00Yes (EDT -04:00)
America/ChicagoCentral Time (US)-06:00Yes (CDT -05:00)
America/DenverMountain Time (US)-07:00Yes (MDT -06:00)
America/Los_AngelesPacific Time (US)-08:00Yes (PDT -07:00)
Europe/LondonGreenwich Mean Time+00:00Yes (BST +01:00)
Europe/BerlinCentral European Time+01:00Yes (CEST +02:00)
Europe/MoscowMoscow Time+03:00No
Asia/DubaiGulf Standard Time+04:00No
Asia/KolkataIndia Standard Time+05:30No
Asia/ShanghaiChina Standard Time+08:00No
Asia/TokyoJapan Standard Time+09:00No
Australia/SydneyAustralian Eastern Time+10:00Yes (AEDT +11:00)
Pacific/AucklandNew Zealand Standard Time+12:00Yes (NZDT +13:00)

Ví Dụ Code

Hầu hết các ngôn ngữ lập trình lớn đều hỗ trợ chuyển đổi múi giờ thông qua cơ sở dữ liệu IANA. Các ví dụ dưới đây cho thấy cách chuyển đổi timestamp UTC sang các múi giờ khác trong JavaScript bằng Intl API, Python bằng module zoneinfo, Go bằng package time, và lệnh GNU date cho shell script.

JavaScript (Intl API)
// Convert a date from one timezone to another
const date = new Date('2026-03-15T09:00:00Z')

// Format in specific timezone
const nyTime = date.toLocaleString('en-US', { timeZone: 'America/New_York' })
// → "3/15/2026, 5:00:00 AM"

const tokyoTime = date.toLocaleString('en-US', { timeZone: 'Asia/Tokyo' })
// → "3/15/2026, 6:00:00 PM"

// Get the UTC offset for a timezone programmatically
function getUtcOffset(tz: string, date = new Date()) {
  const fmt = new Intl.DateTimeFormat('en-US', {
    timeZone: tz,
    timeZoneName: 'longOffset',
  })
  const parts = fmt.formatToParts(date)
  return parts.find(p => p.type === 'timeZoneName')?.value ?? ''
}
getUtcOffset('Asia/Kolkata') // → "GMT+05:30"
Python (zoneinfo + datetime)
from datetime import datetime
from zoneinfo import ZoneInfo

# Create a timezone-aware datetime
dt = datetime(2026, 3, 15, 9, 0, tzinfo=ZoneInfo('UTC'))

# Convert to New York time
ny = dt.astimezone(ZoneInfo('America/New_York'))
print(ny)  # → 2026-03-15 05:00:00-04:00 (EDT in March)

# Convert to Tokyo time
tokyo = dt.astimezone(ZoneInfo('Asia/Tokyo'))
print(tokyo)  # → 2026-03-15 18:00:00+09:00

# Get current time in any timezone
now_berlin = datetime.now(ZoneInfo('Europe/Berlin'))
print(now_berlin.strftime('%Y-%m-%d %H:%M %Z'))  # → 2026-03-15 10:00 CET
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	utc := time.Date(2026, 3, 15, 9, 0, 0, 0, time.UTC)

	// Load timezone by IANA name
	ny, _ := time.LoadLocation("America/New_York")
	tokyo, _ := time.LoadLocation("Asia/Tokyo")

	fmt.Println(utc.In(ny))    // → 2026-03-15 05:00:00 -0400 EDT
	fmt.Println(utc.In(tokyo)) // → 2026-03-15 18:00:00 +0900 JST

	// Get the UTC offset in seconds
	_, offset := utc.In(ny).Zone()
	fmt.Printf("UTC offset: %+d hours\n", offset/3600) // → UTC offset: -4 hours
}
CLI (GNU date / TZ variable)
# Display current time in a specific timezone
TZ='Asia/Tokyo' date '+%Y-%m-%d %H:%M:%S %Z'
# → 2026-03-15 18:00:00 JST

# Convert a UTC timestamp to another timezone
TZ='America/Los_Angeles' date -d '2026-03-15T09:00:00Z' '+%Y-%m-%d %H:%M %Z'
# → 2026-03-15 02:00 PDT

# List all available IANA timezone names
timedatectl list-timezones | head -20

Câu Hỏi Thường Gặp

Sự khác biệt giữa UTC và GMT là gì?
UTC (Coordinated Universal Time) và GMT (Greenwich Mean Time) trong thực tế đại diện cho cùng một thời điểm: độ lệch bằng không so với kinh tuyến gốc. Sự khác biệt mang tính kỹ thuật. UTC được định nghĩa bởi đồng hồ nguyên tử và là tiêu chuẩn thời gian toàn cầu dùng trong máy tính. GMT là tên múi giờ gắn với Vương quốc Anh. Trong code, luôn dùng UTC làm điểm tham chiếu, không dùng GMT.
DST ảnh hưởng đến việc chuyển đổi múi giờ như thế nào?
Khi một khu vực áp dụng DST, độ lệch UTC của nó thay đổi một giờ (đôi khi 30 hoặc 45 phút) trong một phần của năm. Ví dụ, America/New_York là UTC-5 vào mùa đông (EST) và UTC-4 vào mùa hè (EDT). Nếu bạn dùng độ lệch cố định thay vì định danh múi giờ IANA, kết quả chuyển đổi sẽ sai trong nửa năm. Luôn dùng tên IANA đầy đủ như America/New_York, không dùng độ lệch cố định.
Tại sao nên dùng tên múi giờ IANA thay vì viết tắt như EST hay PST?
Các viết tắt múi giờ có tính mơ hồ. CST có thể là Central Standard Time (UTC-6), China Standard Time (UTC+8), hoặc Cuba Standard Time (UTC-5). Các định danh IANA như America/Chicago là duy nhất trên toàn cầu và mã hóa toàn bộ lịch sử thay đổi độ lệch và quy tắc DST của khu vực đó. Cơ sở dữ liệu IANA được duy trì bởi Internet Assigned Numbers Authority và cập nhật nhiều lần mỗi năm.
Điều gì xảy ra với thời điểm nằm trong khoảng trống khi đồng hồ chuyển tiếp mùa xuân?
Khi đồng hồ chuyển tiếp, một giờ bị bỏ qua. Ví dụ, ở America/New_York, 2:00 SA nhảy thẳng đến 3:00 SA vào Chủ Nhật thứ hai của tháng Ba. Thời điểm như 2:30 SA không tồn tại vào ngày đó ở múi giờ đó. Hầu hết các ngôn ngữ lập trình xử lý điều này bằng cách đẩy giờ lên 3:00 SA hoặc báo lỗi, tùy thuộc vào thư viện.
Tôi có thể chuyển đổi giờ cho các ngày lịch sử một cách chính xác không?
Có, nếu bạn dùng định danh múi giờ IANA. Cơ sở dữ liệu IANA bao gồm các thay đổi độ lệch lịch sử từ nhiều thập kỷ trước. Ví dụ, Trung Quốc từng dùng năm múi giờ trước năm 1949 và sau đó chuyển sang một múi giờ duy nhất (UTC+8). Cơ sở dữ liệu ghi lại các lần chuyển đổi này, nên việc chuyển đổi một timestamp năm 1945 cho Asia/Shanghai sẽ dùng đúng độ lệch lịch sử.
Làm thế nào để lưu trữ thời gian trong cơ sở dữ liệu để tránh vấn đề múi giờ?
Lưu tất cả timestamp theo UTC. Khi hiển thị giờ cho người dùng, chuyển đổi từ UTC sang múi giờ địa phương của họ lúc hiển thị. Cách tiếp cận này tránh được sự mơ hồ: một timestamp UTC có đúng một nghĩa duy nhất bất kể máy chủ hay người dùng ở đâu. Kiểu TIMESTAMPTZ của PostgreSQL và kiểu TIMESTAMP của MySQL đều lưu giá trị theo UTC nội bộ.
Có múi giờ nào có độ lệch 30 phút hoặc 45 phút không?
Có. India Standard Time (Asia/Kolkata) là UTC+5:30, Nepal Standard Time (Asia/Kathmandu) là UTC+5:45, và Quần đảo Chatham (Pacific/Chatham) là UTC+12:45. Iran (Asia/Tehran) dùng UTC+3:30. Các độ lệch phân số này có nghĩa là bạn không thể giả định tất cả múi giờ chênh lệch nhau theo số giờ nguyên khi viết logic chuyển đổi.