Автор оригинала: Pankaj Kumar.
В последнем примере мы узнали, как преобразовать дату в строку в Java . В этом примере я преобразую объект даты Java из одного часового пояса в другой.
Мы будем использовать класс SimpleDateFormat для форматирования данных в определенном формате, и мы установим его часовой пояс для печати данных в определенном часовом поясе.
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")); } }
Вот результат работы программы:
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
Из выходных данных ясно, что мой системный часовой пояс-PST, а затем он преобразует один и тот же объект даты в разные часовые пояса, такие как IST и GMT, и печатает его. Используя мой последний урок, вы можете снова преобразовать возвращенную строку в объект Даты.
Обновление : В Java 8 добавлен новый API даты и времени, вы должны проверить его по адресу Дата Java 8 .