我有一個用戶可以輸入日期的用戶界面。現在這個日期在我的代碼中轉換爲UTC格式,這是在EJB內部。日期時區問題
我的查詢是如果IST中的瀏覽器和我的代碼部署在EST中的服務器上。
現在轉換爲UTC時區,我需要從IST或ETC轉換日期。
我的代碼是這樣的:
用戶輸入中的DatePicker的日期。 DatePicker的值被分配給純Java日期對象。
我有一個用戶可以輸入日期的用戶界面。現在這個日期在我的代碼中轉換爲UTC格式,這是在EJB內部。日期時區問題
我的查詢是如果IST中的瀏覽器和我的代碼部署在EST中的服務器上。
現在轉換爲UTC時區,我需要從IST或ETC轉換日期。
我的代碼是這樣的:
用戶輸入中的DatePicker的日期。 DatePicker的值被分配給純Java日期對象。
你需要做IST到UTC
你的用戶選擇日期,假設它是IST。因此,在您的服務器代碼中,您需要在創建將位於服務器時區的Date對象之前考慮用戶時區。由於服務器在EST中,因此在存儲之前需要將其再次轉換爲UTC。
大多數服務器都有在UTC時區配置的時間,因此在這種情況下只需要一次轉換。
當您在本地時區中獲得一個日期。
private static final DateFormat FULL_RFC822_DATETIME_FORMAT = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss", Locale.US);
public static void date2() throws Exception {
FULL_RFC822_DATETIME_FORMAT.setTimeZone(new SimpleTimeZone(0, "GMT")); //frozen
Date d = new Date(); // in local time zone
System.out.println(d);
System.out.println(FULL_RFC822_DATETIME_FORMAT.format(d) + " GMT");
}
我得到
Fri Dec 07 11:15:58 CET 2012
Fri, 7 Dec 2012 10:15:58 GMT
GMT + UTC是相同的。