2012-12-07 54 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是相同的。