2012-12-07 91 views
3

我有一個用戶可以輸入日期的用戶界面。現在這個日期在我的代碼中轉換爲UTC格式,這是在EJB內部。日期時區問題

我的查詢是如果IST中的瀏覽器和我的代碼部署在EST中的服務器上。

現在轉換爲UTC時區,我需要從IST或ETC轉換日期。

我的代碼是這樣的:

用戶輸入中的DatePicker的日期。 DatePicker的值被分配給純Java日期對象。

回答

3

你需要做IST到UTC

你的用戶選擇日期,假設它是IST。因此,在您的服務器代碼中,您需要在創建將位於服務器時區的Date對象之前考慮用戶時區。由於服務器在EST中,因此在存儲之前需要將其再次轉換爲UTC。

大多數服務器都有在UTC時區配置的時間,因此在這種情況下只需要一次轉換。

0

當您在本地時區中獲得一個日期。

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是相同的。