Java 更改时间戳格式

Java 更改时间戳格式,java,json,spring,spring-mvc,jackson,Java,Json,Spring,Spring Mvc,Jackson,我正在通过jsonwebservice输出一些数据库结果。简单到: @GetMapping(produces = "application/json") public List<Map<String, Object>> get(Param params) { return jdbcTemplate.queryForList(sql, params) } @GetMapping(products=“application/json”) 公共列表获取(参数参数){

我正在通过
json
webservice输出一些数据库结果。简单到:

@GetMapping(produces = "application/json")
public List<Map<String, Object>> get(Param params) {
    return jdbcTemplate.queryForList(sql, params)
}
@GetMapping(products=“application/json”)
公共列表获取(参数参数){
返回jdbcTemplate.queryForList(sql,参数)
}
问题:
java.sql.Timestamp
已转换为格式
2018-04-26T07:52:02.000+0000
,而普通数据库输出将为
2018-04-26 07:52:02.0

问:是否有任何配置属性告诉spring只传递从数据库接收的本机时间戳,而不是使用
jackson
逻辑转换它

我想全局更改
java.sql.Timestamp
格式

重要:请不要建议任何注释!我没有任何bean/pojo,我只是将普通数据库结果作为
映射返回

我想全局更改
java.sql.Timestamp
格式

将日期格式设置为
ObjectMapper
实例:

ObjectMapper mapper=new ObjectMapper();
setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:MM:ss.S”);
在Spring应用程序中,您可以将
ObjectMapper
实例作为bean公开:

@Bean
公共对象映射器对象映射器(){
ObjectMapper mapper=新的ObjectMapper();
setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:MM:ss.S”);
返回映射器;
}

在Spring Boot中,您可以使用属性
Spring.jackson.date format
来定义日期格式:

spring.jackson.date-format: yyyy-MM-dd HH:mm:ss.S
有关常用应用程序属性的更多详细信息,请参阅


考虑以下代码:

Map data=newhashmap();
data.put(“日期”,新的时间戳(ZonedDateTime.now().toInstant().toEpochMilli());
System.out.println(mapper.writeValueAsString(数据));
它将打印:

{“日期”:“2018-04-2607:25:14.408”
我想全局更改
java.sql.Timestamp
格式

将日期格式设置为
ObjectMapper
实例:

ObjectMapper mapper=new ObjectMapper();
setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:MM:ss.S”);
在Spring应用程序中,您可以将
ObjectMapper
实例作为bean公开:

@Bean
公共对象映射器对象映射器(){
ObjectMapper mapper=新的ObjectMapper();
setDateFormat(新的SimpleDateFormat(“yyyy-MM-dd-HH:MM:ss.S”);
返回映射器;
}

在Spring Boot中,您可以使用属性
Spring.jackson.date format
来定义日期格式:

spring.jackson.date-format: yyyy-MM-dd HH:mm:ss.S
有关常用应用程序属性的更多详细信息,请参阅


考虑以下代码:

Map data=newhashmap();
data.put(“日期”,新的时间戳(ZonedDateTime.now().toInstant().toEpochMilli());
System.out.println(mapper.writeValueAsString(数据));
它将打印:

{“日期”:“2018-04-2607:25:14.408”

或者如果您需要将其作为Spring@Bean

    @Bean
    public JacksonProperties jacksonProperties() {
        JacksonProperties properties = new JacksonProperties();
        properties.setDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // put any pattern you need
        return properties;
    }

或者如果您需要将其作为Spring@Bean

    @Bean
    public JacksonProperties jacksonProperties() {
        JacksonProperties properties = new JacksonProperties();
        properties.setDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // put any pattern you need
        return properties;
    }

您是否已经尝试了
@JsonFormat
注释?可能与::重复,正如我所写的,我不是在创建bean。我没有定义可以添加注释的显式字段。我只是直接从查询结果返回数据库行。没有涉及pojo/dto。@narayan sambireddy显然不是重复的,因为建议使用注释。如前所述,我不能在这里使用注释!请您更新问题,该代码段似乎是从无效方法返回的。您是否已经尝试了
@JsonFormat
注释?可能与::重复,正如我所写的,我不是在创建bean。我没有定义可以添加注释的显式字段。我只是直接从查询结果返回数据库行。没有涉及pojo/dto。@narayan sambireddy显然不是重复的,因为建议使用注释。如前所述,我不能在这里使用注释!请您更新问题,代码段似乎从无效方法返回。
spring.jackson.date格式
属性完全适合,无需添加任何代码。
spring.jackson.date格式
属性完全适合,无需添加任何代码。