كيفية تحويل تاريخ Java إلى تنسيق TimeZone معين

في المثال الأخير، تعلمنا كيفية تحويل التاريخ إلى سلسلة نصية في لغة البرمجة جافا. في هذا المثال، أقوم بتحويل كائن تاريخ جافا من توقيت زمني إلى آخر. سنستخدم فئة 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) {
		// فحص قيمة الفارغ أو الصفر
		if (date == null) return null;
		// إنشاء كائن SimpleDateFormat بتنسيق الإدخال
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		// توقيت النظام الافتراضي إذا تم تمرير قيمة فارغة أو صفر
		if (timeZone == null || "".equalsIgnoreCase(timeZone.trim())) {
			timeZone = Calendar.getInstance().getTimeZone().getID();
		}
		// تعيين التوقيت لكائن SimpleDateFormat
		sdf.setTimeZone(TimeZone.getTimeZone(timeZone));
		// إرجاع التاريخ بالتنسيق المطلوب مع توقيته كسلسلة نصية
		return sdf.format(date);
	}

	public static void main(String[] args) {
		// اختبار طريقة تنسيق التاريخ للنص
		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 ويقوم بطباعته. باستخدام البرنامج التعليمي السابق، يمكنك مرة أخرى تحويل السلسلة المسترجعة إلى كائن تاريخ. تحديث: لقد أضافت جافا 8 واجهة برمجة تاريخ جديدة، يجب عليك التحقق منها على Java 8 Date.

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