因为用到这个东西了,随手查了下,发现解决方案有很多,作为一个菜鸟来说 有必要整理一下-、-

我用的是hibernate自己生成的表,所以util Date在mysql  只有年月日 而没有时分秒

然后我在Struts2  全局配置里设置了时间类型转换器xwork-conversion.properties

在这个工具类中没有格式化时间格式:

 

public class DateTypeConverter extends DefaultTypeConverter {
	@Override
	public Object convertValue(Map<String, Object> context, Object value,Class toType) {
		SimpleDateFormat  dateFormat= new SimpleDateFormat("yyyyMMdd");
		
		try {
			if(toType == Date.class){
				String[] params = (String[])value;
				return dateFormat.parse(params[0]);
			}else if(toType == String.class){
				Date date = (Date)value;
				return dateFormat.format(date);
			}
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		return null;
	}


所以数据转换的时候自动加入了时分秒,

 

解决方案如下:

1.我用的jstl标签 直接在页面显示的时候搞下 

(标签的引入)
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

(time是后台传过来的,你放到request或者session都可以)
<fmt:formatDate value="${time}" pattern="yyyy-MM-dd"/>

这样就好了

2。SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//在这里可以设置时间格式奥 去掉后面的尾巴就完了
sdf.format(new Data());  这个直接取值拿来用就行了

 

3.这个就比较麻烦了 不过也是一种方法哈

System.out.println(tempDate);调用的是Date.toString函数
你继承Date类,重写Date.toString函数也行

 

 

Logo

更多推荐