我有一个用户可以输入日期的用户界面。现在这个日期在我的代码中转换为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是相同的。