Wie man ein Java-Datum in ein bestimmtes Zeitzone-Format konvertiert

Im letzten Beispiel haben wir gelernt, wie man Datum in Java in einen String umwandelt. In diesem Beispiel konvertiere ich ein Java-Datumobjekt von einer Zeitzone in eine andere. Wir verwenden die Klasse SimpleDateFormat, um das Datum in einem bestimmten Format zu formatieren, und setzen seine Zeitzone, um das Datum in einer bestimmten Zeitzone auszugeben.

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) {
		// Nullprüfung
		if (date == null) return null;
		// Erzeugen eines SimpleDateFormat-Objekts mit Eingabeformat
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		// Standard-System-Zeitzone, falls null oder leer übergeben wird
		if (timeZone == null || "".equalsIgnoreCase(timeZone.trim())) {
			timeZone = Calendar.getInstance().getTimeZone().getID();
		}
		// Zeitzone für SimpleDateFormat festlegen
		sdf.setTimeZone(TimeZone.getTimeZone(timeZone));
		// Datum im erforderlichen Format mit Zeitzone als String zurückgeben
		return sdf.format(date);
	}

	public static void main(String[] args) {
		// Testen der Methode formatDateToString
		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"));
	}

}

Hier ist die Ausgabe des Programms:

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

Aus der Ausgabe ist ersichtlich, dass meine System-Zeitzone PST ist und dann dasselbe Datumobjekt in verschiedene Zeitzonen wie IST und GMT konvertiert und ausgegeben wird. Mit meinem letzten Tutorial können Sie den zurückgegebenen String erneut in ein Datumobjekt umwandeln. Aktualisierung: Java 8 hat eine neue Date-Time-API hinzugefügt, die Sie sich unter Java 8 Datum ansehen sollten.

Source:
https://www.digitalocean.com/community/tutorials/how-to-convert-java-date-into-specific-timezone-format