您的位置:首页 > 编程语言 > Java开发

mybatis+springmvc时间格式化,jsp实现或者在ResponseBody日期类型Json处理

2017-09-21 22:16 706 查看

1.JSP对输出进行格式化


1.1、加入taglib

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>



1.2、格式化输出

<fmt:formatDate value="${ent.inputTime}" pattern="yyyy-MM-dd HH:mm" />


2.ResponseBody日期类型Json处理 (参考:http://tramp-zzy.iteye.com/blog/2090330)

方法一:全局处理 

mybatis.xml代码
<mvc:annotation-driven>
<!-- 处理responseBody 里面日期类型 -->
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="com.fasterxml.jackson.databind.ObjectMapper">
<property name="dateFormat">
<bean class="java.text.SimpleDateF
4000
ormat">
<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
</bean>
</property>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>


方法二:局部注解处理 

Java代码:
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

/**
* ClassName:DateJsonSerializer <br/>
* Function: 日期类型格式化,格式化为:yyyy-MM-dd HH:mm:ss 格式. 用法如下:<br/>
* Reason:   @JsonSerialize(using=DateJsonSerializer.class)
*           @Column(name="BIRTHDAY")
*           public Date getBirthday() {
*              return birthday;
*           }
*          . <br/>
* Date:     2014年7月10日 下午1:26:08 <br/>
* @author   zhangzhaoyu
* @version   1.0
* @since    JDK 1.7
* @see
*/
public class DateJsonSerializer extends JsonSerializer<Date> {

@Override
public void serialize(Date value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formattedDate = formatter.format(value);
jgen.writeString(formattedDate);
}

}


方法三:jackson 注解处理 

Java代码:
@JsonIgnoreProperties
此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

@JsonIgnore
此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

@JsonFormat
此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")

@JsonSerialize

// 反序列化一个固定格式的Date
@JsonDeserialize(using = CustomDateDeserialize.class)
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

// 序列化指定格式的double格式
@JsonSerialize(using = CustomDoubleSerialize.class)
public double getSalary() {
return salary;
}

public class CustomDateDeserialize extends JsonDeserializer<Date> {

private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

@Override
public Date deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {

Date date = null;
try {
date = sdf.parse(jp.getText());
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}


mysql格式化

DATE_FORMAT(now(),'%Y-%m-%d %h:%i:%s')

date_format详解

格式
描述
%a
缩写星期名
%b
缩写月名
%c
月,数值
%D
带有英文前缀的月中的天
%d
月的天,数值(00-31)
%e
月的天,数值(0-31)
%f
微秒
%H
小时 (00-23)
%h
小时 (01-12)
%I
小时 (01-12)
%i
分钟,数值(00-59)
%j
年的天 (001-366)
%k
小时 (0-23)
%l
小时 (1-12)
%M
月名
%m
月,数值(00-12)
%p
AM 或 PM
%r
时间,12-小时(hh:mm:ss AM 或 PM)
%S
秒(00-59)
%s
秒(00-59)
%T
时间, 24-小时 (hh:mm:ss)
%U
周 (00-53) 星期日是一周的第一天
%u
周 (00-53) 星期一是一周的第一天
%V
周 (01-53) 星期日是一周的第一天,与 %X 使用
%v
周 (01-53) 星期一是一周的第一天,与 %x 使用
%W
星期名
%w
周的天 (0=星期日, 6=星期六)
%X
年,其中的星期日是周的第一天,4 位,与 %V 使用
%x
年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y
年,4 位
%y
年,2 位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐