Cách chuyển đổi Date sang múi giờ trong Java với SimpleDateFormat
2 phút đọc11/09/2025
Reading Time: 2 minutesTrong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi Date sang múi giờ trong Java bằng cách sử dụng lớp SimpleDateFormat để định dạng ngày và thiết lập múi giờ mong muốn.

package com.journaldev.util;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class DateFormatter {
/**
* Utility function to convert java Date to TimeZone format
* @param date
* @param format
* @param timeZone
* @return
*/
public static String formatDateToString(Date date, String format,
String timeZone) {
// null check
if (date == null) return null;
// create SimpleDateFormat object with input format
SimpleDateFormat sdf = new SimpleDateFormat(format);
// default system timezone if passed null or empty
if (timeZone == null || "".equalsIgnoreCase(timeZone.trim())) {
timeZone = Calendar.getInstance().getTimeZone().getID();
}
// set timezone to SimpleDateFormat
sdf.setTimeZone(TimeZone.getTimeZone(timeZone));
// return Date in required format with timezone as String
return sdf.format(date);
}
public static void main(String[] args) {
//Test formatDateToString method
Date date = new Date();
System.out.println("Default Date:"+date.toString());
System.out.println("System Date: "+formatDateToString(date, "dd MMM yyyy hh:mm:ss a", null));
System.out.println("System Date in PST: "+formatDateToString(date, "dd MMM yyyy hh:mm:ss a", "PST"));
System.out.println("System Date in IST: "+formatDateToString(date, "dd MMM yyyy hh:mm:ss a", "IST"));
System.out.println("System Date in GMT: "+formatDateToString(date, "dd MMM yyyy hh:mm:ss a", "GMT"));
}
}
Kết quả khi chạy chương trình:
Default Date:Wed Nov 14 21:37:01 PST 2012
System Date: 14 Nov 2012 09:37:01 PM
System Date in PST: 14 Nov 2012 09:37:01 PM
System Date in IST: 15 Nov 2012 11:07:01 AM
System Date in GMT: 15 Nov 2012 05:37:01 AM
Từ kết quả trên, có thể thấy hệ thống đang sử dụng múi giờ PST, sau đó chương trình đã chuyển đổi cùng một đối tượng Date sang các múi giờ khác như IST và GMT để in ra. Dựa trên ví dụ trong bài trước, bạn cũng có thể chuyển đổi ngược chuỗi trả về thành đối tượng Date.
Cập nhật: Java 8 đã bổ sung API Date Time mới, bạn nên tham khảo thêm.
Về tác giả

Bao TranWeb Developer
I’m passionate about web development and sharing my insights through articles, with over 8 years of experience. I hope these sharings inspire you and help build a strong web development community.
@#@
Tôi đam mê phát triển web và chia sẻ những hiểu biết của mình thông qua các bài viết, với hơn 8 năm kinh nghiệm. Tôi hy vọng những chia sẻ này sẽ truyền cảm hứng cho các bạn và giúp xây dựng một cộng đồng phát triển web mạnh mẽ.
Cập nhật thông tin mới nhấtNhận các thông tin mới nhất về mối đe dọa, báo cáo an ninh mạng từ CyStack về hòm thư điện tử của bạn
{"success":true,"head":"<title>Cách chuyển đổi Date sang múi giờ trong Java với SimpleDateFormat - CyStack Tutorial</title>\n<meta name=\"description\" content=\"Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi Date sang múi giờ trong Java bằng cách sử dụng lớp SimpleDateFormat để định dạng ngày và thiết lập\"/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-video-preview:-1, max-image-preview:large\"/>\n<link rel=\"canonical\" href=\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/\" />\n<meta property=\"og:locale\" content=\"en_US\" />\n<meta property=\"og:type\" content=\"article\" />\n<meta property=\"og:title\" content=\"Cách chuyển đổi Date sang múi giờ trong Java với SimpleDateFormat - CyStack Tutorial\" />\n<meta property=\"og:description\" content=\"Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi Date sang múi giờ trong Java bằng cách sử dụng lớp SimpleDateFormat để định dạng ngày và thiết lập\" />\n<meta property=\"og:url\" content=\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/\" />\n<meta property=\"og:site_name\" content=\"CyStack Tutorial\" />\n<meta property=\"article:tag\" content=\"vi\" />\n<meta property=\"article:section\" content=\"Java\" />\n<meta property=\"og:image\" content=\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\" />\n<meta property=\"og:image:secure_url\" content=\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\" />\n<meta property=\"og:image:width\" content=\"1200\" />\n<meta property=\"og:image:height\" content=\"630\" />\n<meta property=\"og:image:alt\" content=\"chuyển đổi Date sang múi giờ trong Java\" />\n<meta property=\"og:image:type\" content=\"image/jpeg\" />\n<meta property=\"article:published_time\" content=\"2025-09-11T17:18:45+07:00\" />\n<meta name=\"twitter:card\" content=\"summary_large_image\" />\n<meta name=\"twitter:title\" content=\"Cách chuyển đổi Date sang múi giờ trong Java với SimpleDateFormat - CyStack Tutorial\" />\n<meta name=\"twitter:description\" content=\"Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách chuyển đổi Date sang múi giờ trong Java bằng cách sử dụng lớp SimpleDateFormat để định dạng ngày và thiết lập\" />\n<meta name=\"twitter:image\" content=\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\" />\n<meta name=\"twitter:label1\" content=\"Written by\" />\n<meta name=\"twitter:data1\" content=\"Bao Tran\" />\n<meta name=\"twitter:label2\" content=\"Time to read\" />\n<meta name=\"twitter:data2\" content=\"1 minute\" />\n<script type=\"application/ld+json\" class=\"rank-math-schema\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https://blog.cystack.org/tutorial/#person\",\"name\":\"CyStack Tutorial\"},{\"@type\":\"WebSite\",\"@id\":\"https://blog.cystack.org/tutorial/#website\",\"url\":\"https://blog.cystack.org/tutorial\",\"name\":\"CyStack Tutorial\",\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\",\"url\":\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\",\"width\":\"1200\",\"height\":\"630\",\"caption\":\"chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java\",\"inLanguage\":\"en-US\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":\"1\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"position\":\"2\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/category/java/\",\"name\":\"Java\"}},{\"@type\":\"ListItem\",\"position\":\"3\",\"item\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/\",\"name\":\"C\\u00e1ch chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java v\\u1edbi SimpleDateFormat\"}}]},{\"@type\":\"WebPage\",\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#webpage\",\"url\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/\",\"name\":\"C\\u00e1ch chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java v\\u1edbi SimpleDateFormat - CyStack Tutorial\",\"datePublished\":\"2025-09-11T17:18:45+07:00\",\"dateModified\":\"2025-09-11T17:18:45+07:00\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/#website\"},\"primaryImageOfPage\":{\"@id\":\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\"},\"inLanguage\":\"en-US\",\"breadcrumb\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#breadcrumb\"}},{\"@type\":\"Person\",\"@id\":\"https://blog.cystack.org/tutorial/author/baotran/\",\"name\":\"Bao Tran\",\"url\":\"https://blog.cystack.org/tutorial/author/baotran/\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https://secure.gravatar.com/avatar/0cdd33c02ec4a531fcf557b9c1ccc276df0c69031b2382c959bcf335248e840c?s=96&d=mm&r=g\",\"url\":\"https://secure.gravatar.com/avatar/0cdd33c02ec4a531fcf557b9c1ccc276df0c69031b2382c959bcf335248e840c?s=96&d=mm&r=g\",\"caption\":\"Bao Tran\",\"inLanguage\":\"en-US\"}},{\"@type\":\"BlogPosting\",\"headline\":\"C\\u00e1ch chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java v\\u1edbi SimpleDateFormat - CyStack Tutorial\",\"keywords\":\"chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java\",\"datePublished\":\"2025-09-11T17:18:45+07:00\",\"dateModified\":\"2025-09-11T17:18:45+07:00\",\"articleSection\":\"Java\",\"author\":{\"@id\":\"https://blog.cystack.org/tutorial/author/baotran/\",\"name\":\"Bao Tran\"},\"publisher\":{\"@id\":\"https://blog.cystack.org/tutorial/#person\"},\"description\":\"Trong h\\u01b0\\u1edbng d\\u1eabn n\\u00e0y, ch\\u00fang ta s\\u1ebd t\\u00ecm hi\\u1ec3u c\\u00e1ch chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java b\\u1eb1ng c\\u00e1ch s\\u1eed d\\u1ee5ng l\\u1edbp SimpleDateFormat \\u0111\\u1ec3 \\u0111\\u1ecbnh d\\u1ea1ng ng\\u00e0y v\\u00e0 thi\\u1ebft l\\u1eadp\",\"name\":\"C\\u00e1ch chuy\\u1ec3n \\u0111\\u1ed5i Date sang m\\u00fai gi\\u1edd trong Java v\\u1edbi SimpleDateFormat - CyStack Tutorial\",\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#richSnippet\",\"isPartOf\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#webpage\"},\"image\":{\"@id\":\"https://s2.cystack.net/tutorial/11171816/chuyen-doi-date-sang-mui-gio-trong-java.jpg\"},\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https://blog.cystack.org/tutorial/2025/09/11/chuyen-doi-date-sang-mui-gio-trong-java/#webpage\"}}]}</script>\n"}