日期时区问题

时间:2012-12-07 07:54:22

标签: java date localization timezone

我有一个用户可以输入日期的UI。现在,这个日期在我的代码中转换为UTC格式,该代码位于EJB中。

我的查询是IST中的浏览器和我的代码是否部署在EST中的服务器上。

现在转换为UTC,我需要从时区转换IST或ETC的日期。

我的代码就像:

用户在DatePicker中输入日期。 DatePicker的值分配给普通的Java Date Object。

2 个答案:

答案 0 :(得分:3)

您需要将IST转换为UTC

您的用户正在选择日期,假设它是IST。因此,在您的服务器代码中,您需要在创建将在服务器时区中的Date对象之前考虑用户时区。由于服务器在EST中,您需要在存储之前将其再次转换为UTC。

大多数服务器都在UTC时区配置了时间,因此在这种情况下只需要进行一次转换。

答案 1 :(得分: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是相同的。