0
d0 = "2018-01-01 00:00:00";
SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = (Date) formate.parseObject(d0);
String result =  DateUtils.formatDate(d1, "yyyy-MM-dd hh:mm:ss");
System.out.println(result);

为什么返回的是2017-12-31 04:00:00
???

补充:

DateUtils.formatDate 

\apache\httpcomponents\httpclient\4.5.1\httpclient-4.5.1.jar

里面的方法:

public static String formatDate(Date date, String pattern) {
    Args.notNull(date, "Date");
    Args.notNull(pattern, "Pattern");
    SimpleDateFormat formatter = DateUtils.DateFormatHolder.formatFor(pattern);
    return formatter.format(date);
}
inchei 196
2019-02-12 提问
3 个回答
1

已采纳

clipboard.png
如图,DateUtils用的也是SimpleFormat,但是它设置了时区和中国的时间相差8个小时
至于hh和HH的区别是一个12小时进制,一个是24小时进制

0

你把DateUtils.formatDate的方法贴一下
表面看的话,DateUtils.formatDate(d1, "yyyy-MM-dd hh:mm:ss");hh应该大写的;
另外,formate.parseObject应该改为formate.parse

-1

好好看看API 看看HhMm都代表什么

撰写答案

推广链接