java mvc 输出格式化日期

在mvc spring 中最常用两种方式输出结果。一种是直接使用mvc输出对象。另一种是将对像格式化后来输入到流。

针对第一种,我们常用的是Gson.(com.google.gson.Gson).代码比较简单,摘要如下:

public void returnData(HttpServletRequest request,
			HttpServletResponse response, CommResponse commResponse)
			throws Exception {
		response.setContentType("text/json; charset=UTF-8");
		PrintWriter out = response.getWriter();
        //Gson gson = new Gson();
		Gson gson = new  GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
		String gsonstring = gson.toJson(commResponse);
		out.print(gsonstring);
		out.close();
	}

如上,如果直接使用Gson。那么格式化日期时,将格林威治时间为准,输出时间。实际情况时,我们需要按照北京时间输出。因此,需要格外地格式化输出的时候。那么就使用GsonBuilder来设置格式化的要求。

另一种情况 ,是直接在mvc中返回对象。这个时间是直接使用MappingJackson2HttpMessageConverter类。在xml配置如下

<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.SimpleDateFormat">  
                                <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />  
                            </bean>  
                        </property>  
                    </bean>  
                </property>  
            </bean>  
        </mvc:message-converters>  

注意要在pom中引用

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.5</version>
</dependency>

根据需要指定特殊的格式化信息。只需要在指定的获取方法上注明即可。

@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8") 
	public Date getProducetime() {
		return producetime;
	}

更多的设置请参考此篇博文https://www.cnblogs.com/woshimrf/p/5189435.html

猜你喜欢

转载自blog.csdn.net/pengdayong77/article/details/81870719