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格式
属性完全适合,无需添加任何代码。