java 去掉Date类型 年月日 后面的时分秒

本文讨论了使用Hibernate自动生成的表时遇到的日期时间格式不全问题,并提供了三种解决方案:使用JSTL标签格式化显示、简单设置SimpleDateFormat格式、重写Date类的toString方法。旨在帮助开发者轻松解决日期时间格式化问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

我用的是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函数也行

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值