源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

SpringMVC对日期类型的转换示例

  • 时间:2021-10-15 14:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:SpringMVC对日期类型的转换示例
在做web开发的时候,页面传入的都是String类型,SpringMVC可以对一些基本的类型进行转换,但是对于日期类的转换可能就需要我们配置。 1、如果查询类使我们自己写,那么在属性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd")  ,即可将String转换为Date类型,如下
@DateTimeFormat(pattern = "yyyy-MM-dd") 
private Date createTime; 
2、如果我们只负责web层的开发,就需要在controller中加入数据绑定:
@InitBinder 
public void initBinder(WebDataBinder binder) { 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
dateFormat.setLenient(false); 
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); //true:允许输入空值,false:不能为空值
3、可以在系统中加入一个全局类型转换器 实现转换器
public class DateConverter implements Converter<String, Date> { 
@Override 
public Date convert(String source) { 
 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 
 dateFormat.setLenient(false); 
 try { 
  return dateFormat.parse(source); 
 } catch (ParseException e) { 
  e.printStackTrace(); 
 }   
 return null; 
}
进行配置:
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean"> 
  <property name="converters"> 
   <list> 
    <bean class="com.doje.XXX.web.DateConverter" /> 
   </list> 
  </property> 
</bean> 
<mvc:annotation-driven conversion-service="conversionService" /> 
4、如果将日期类型转换为String在页面上显示,需要配合一些前端的技巧进行处理。 5、SpringMVC使用@ResponseBody返回json时,日期格式默认显示为时间戳。
@Component("customObjectMapper") 
public class CustomObjectMapper extends ObjectMapper { 
 
 public CustomObjectMapper() { 
  CustomSerializerFactory factory = new CustomSerializerFactory(); 
  factory.addGenericMapping(Date.class, new JsonSerializer<Date>() { 
   @Override 
   public void serialize(Date value, JsonGenerator jsonGenerator, 
     SerializerProvider provider) throws IOException, JsonProcessingException { 
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    jsonGenerator.writeString(sdf.format(value)); 
   } 
  }); 
  this.setSerializerFactory(factory); 
 } 
}
配置如下:
<mvc:annotation-driven> 
 <mvc:message-converters> 
  <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"> 
   <property name="objectMapper" ref="customObjectMapper"></property> 
  </bean> 
 </mvc:message-converters> 
</mvc:annotation-driven> 
6、date类型转换为json字符串时,返回的是long time值,如果需要返回指定的日期的类型的get方法上写上@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") ,即可将json返回的对象为指定的类型。
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 
public Date getCreateTime() { 
return this.createTime; 
} 
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程素材网。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部