Java 在Spring应用程序中设置时区

Java 在Spring应用程序中设置时区,java,spring,spring-mvc,datetime-format,Java,Spring,Spring Mvc,Datetime Format,我需要在IST时区的日期。默认情况下,服务器以时区UTC返回日期 通过添加以下代码更改了时区: TimeZone.setDefault(TimeZone.getTimeZone("IST")); 这对我来说是有效的,除非用户显式地设置日期时间,因为在这种情况下,用户指定的时间已经在IST中 @RequestMapping(value = "/get-time-string", method = RequestMethod.GET) @ResponseBody public Ob

我需要在IST时区的日期。默认情况下,服务器以时区UTC返回日期

通过添加以下代码更改了时区:

TimeZone.setDefault(TimeZone.getTimeZone("IST"));
这对我来说是有效的,除非用户显式地设置日期时间,因为在这种情况下,用户指定的时间已经在IST中

@RequestMapping(value = "/get-time-string", method = RequestMethod.GET)
    @ResponseBody
    public Object getTime(
            @RequestParam(value = "user_specified_time", required=false) @DateTimeFormat(pattern="yyyy/MM/dd HH:mm:ss") Date date
    ){
        return date.toString();
    }

我如何解决这个问题

理想情况下,您应该在任何地方使用UTC,包括发送request@DmitrySenkovich为什么会这样?@Gautam Kumar,否则,你将在转换日期时遇到麻烦,从而产生这样的影响。在您的特定情况下,您可以在JS代码中转换客户端上的日期。日期通常以UTC格式保存在数据库中,以避免一直弄乱。不要使用三个字母的时区缩写<代码>时区。getTimeZone(“IST”)将在一台服务器上为您提供以色列标准时间,在另一台服务器上为您提供印度标准时间,谁知道呢,可能在第三台服务器上提供爱尔兰夏季时间。例如,使用
亚洲/耶路撒冷
欧洲/都柏林
来避免歧义。