Java 如何根据时区、区域设置或用户偏好获取当前日期?
如果我的web应用程序部署在美国,无论客户的国家是什么,我都会给我们时间。但是,如果客户在印度,他应该使用时区、地区或用户偏好获取印度时间。我该怎么办Java 如何根据时区、区域设置或用户偏好获取当前日期?,java,Java,如果我的web应用程序部署在美国,无论客户的国家是什么,我都会给我们时间。但是,如果客户在印度,他应该使用时区、地区或用户偏好获取印度时间。我该怎么办 Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("US/Mountain"), Locale.US); System.out.println(calendar.getTime()); 输出:2010年7月2日星期五12:15:35 这是我的第一次。但是我需要我们/山区时
Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("US/Mountain"), Locale.US);
System.out.println(calendar.getTime());
输出:2010年7月2日星期五12:15:35
这是我的第一次。但是我需要我们/山区时间。您正在打印
calendar.getTime()
,它返回java.util.Date
-并且Date.toString()
使用默认时区。(Ajava.util.Date
没有关联的时区或区域设置。)
如果要控制格式,请将java.text.DateFormat
与适当的区域设置等一起使用
或者,使用一个更适合的日期和时间API开始。我认为您的问题是如何获取客户端的本地时间,而不是使用客户端日期格式格式化服务器时间 在这种情况下,在创建日历时,您应该使用客户端的区域设置,而不是硬编码-这会将绝对时间(自1970年1月1日起的毫秒)转换为适当的时区 您可以使用来确定客户端首选的区域设置 希望这有帮助