Рубрики
Без рубрики

Как преобразовать данные Java в формат определенного часового пояса

Java преобразует данные из одного часового пояса в другой, PST в IST, пример преобразования PST в GMT, пример преобразования PST в GMT, пример настройки часового пояса SimpleDateFormat

Автор оригинала: 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 .