java中,Date如何格式化为“yyyy-MM-dd”格式Date,并可按需求格式输出!(java.util.Date)

/***把日期格式化**@paramdate*@paramformat*@return*/publicstaticDateformatDate(Datedate,Stri... /**
* 把日期格式化
*
* @param date
* @param format
* @return
*/
public static Date formatDate(Date date, String format) {
String dateStr = format(date, format);
Date dateFormat = null;
SimpleDateFormat formater = new SimpleDateFormat(format);
try {
formater.setLenient(false);
dateFormat = formater.parse(dateStr);
} catch (Exception e) {
dateFormat = null;
e.printStackTrace();
logger.error("日期转化出错");
}
return dateFormat;
}
其中date = "2018-01-01 13:49:45";format = "yyyy-MM-dd";
输出得到的结果dateFormat = "2018-01-01 00:00:00";
实际期望结果:dateFormat = "2018-01-01";
PS:使用java.sql.Date 处理dateFormat可以实现该需求!
java.sql.Date sqlDate = new java.sql.Date(dateFormat);
返回的sqlDate是正确格式,但需要承接该结果的类型也要是java.sql.Date的!
能否只使用java.util.Date就实现该需求?遇到很多次了,每次只能迂回着实现,太费事,求大神指教_(´ཀ`」∠)_加班
展开
 我来答
匿名用户
2018-03-01
展开全部

SimpleDateFormat dateFormat2=new SimpleDateFormat("yyyy-MM-dd");

System.out.println(dateFormat2.format(date));

追问

format()的结果是String类型的,而期望的结果是Date不是String~

淡水千痕乀
2018-03-01 · TA获得超过360个赞
知道小有建树答主
回答量:141
采纳率:83%
帮助的人:29.3万
展开全部
源码里一个Date就包含了 小时分钟秒 这些信息的,如果为空会给默认值,而不是不显示,so
可以自己定义一个Date类吧
更多追问追答
追问
就是说,直接使用java.util.Date是不能只显示年月日不显示时分秒的,如果想实现需求只能自己重新定义,是吗?
追答
是的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式