猿问

在java中获取没有时间的日期

我想得到一个没有时间的约会,但总是失败。下面是我的代码:


    long curLong = System.currentTimeMillis();

    curLong = curLong -  curLong % TimeUnit.DAYS.toMillis(1);

    Date date = new Date(curLong);

    System.out.println("date = " + date);

输出:


date = Mon Oct 28 08:00:00 CST 2019

有人知道为什么吗?谢谢


尚方宝剑之说
浏览 142回答 4
4回答

手掌心

不建议java.util.Date再使用了。它被调用Date,但不一定只包含日期信息,还包含有关时间的信息。用这个:LocalDate today = LocalDate.now();并将其打印为System.out.println(today.format(DateTimeFormatter.ISO_DATE);使用 ISO 日期格式。您可以使用定义自己的格式模式DateTimeFormatter.ofPattern("dd.MM.yyyy");例如。

繁花不似锦

java.util.Date的 javadoc 指出:该类Date表示特定的时刻,精度为毫秒。这就是为什么你和时间有约会如果你想要一个日期,你可以使用:java.time.LocalDate.now()(Java 8+)

慕妹3146593

首先,停止使用旧的java.util.Date. 新的 Java 8 日期和时间 API 为所有日期和时间操作提供了更好的类。该类LocalDate完全按照您的要求进行。当前日期可以通过 获取LocalDate.now()。它还具有许多功能来添加和减去天、月等,并且它会考虑到您的所有日历特殊情况。

慕运维8079593

您可以用来java.time.LocalDate.now()获取日期。不管怎样,你的情况并没有像你预期的那样工作,因为你没有做任何事情来删除日期中的时间:你只是“压制”它,这就是为什么它为零。如果你想继续这种方式,你可以随时substring这样做(Date.toString()当然我的意思是子串)。希望我有所帮助。
随时随地看视频慕课网APP

相关分类

Java
我要回答