Java中的日历日期为yyyy-MM-dd格式

如何将日历日期转换为yyyy-MM-dd格式。

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, 1);

Date date = cal.getTime();

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

String date1 = format1.format(date);

Date inActiveDate = null;

try {

inActiveDate = format1.parse(date1);

} catch (ParseException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

这将产生inActiveDate = Wed Sep 26 00:00:00 IST 2019。但是我需要的是2019-09-26。我的目的是使用Hibernate条件将此日期与数据库中的另一个日期进行比较。所以我需要yyyy-MM-dd格式的日期对象。

回答:

JavaDate是自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数的容器。

当你使用时System.out.println(date),Java将使用Date.toString()打印内容。

更改它的唯一方法是重写Date并提供你自己的实现Date.toString()。现在,在启动IDE并尝试执行此操作之前,我不会这样做。它只会使事情复杂化。最好将日期格式化为要使用(或显示)的格式。

LocalDateTime ldt = LocalDateTime.now().plusDays(1);

DateTimeFormatter formmat1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH);

System.out.println(ldt);

// Output "2018-05-12T17:21:53.658"

String formatter = formmat1.format(ldt);

System.out.println(formatter);

// 2018-05-12

你应该利用ThreeTen Backport

以下内容出于历史目的而保留(作为原始答案)

你可以做的是格式化日期。

Calendar cal = Calendar.getInstance();

cal.add(Calendar.DATE, 1);

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

System.out.println(cal.getTime());

// Output "Wed Sep 26 14:23:28 EST 2012"

String formatted = format1.format(cal.getTime());

System.out.println(formatted);

// Output "2019-09-26"

System.out.println(format1.parse(formatted));

// Output "Wed Sep 26 00:00:00 EST 2019"

这些实际上是同一日期,表示方式有所不同。

以上是 Java中的日历日期为yyyy-MM-dd格式 的全部内容, 来源链接: utcz.com/qa/433809.html

回到顶部