我想得到一个没有时间的约会,但总是失败。下面是我的代码: 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有人知道为什么吗?谢谢
4 回答
手掌心
TA贡献1942条经验 获得超3个赞
不建议java.util.Date
再使用了。它被调用Date
,但不一定只包含日期信息,还包含有关时间的信息。
用这个:
LocalDate today = LocalDate.now();
并将其打印为
System.out.println(today.format(DateTimeFormatter.ISO_DATE);
使用 ISO 日期格式。您可以使用定义自己的格式模式
DateTimeFormatter.ofPattern("dd.MM.yyyy");
例如。
繁花不似锦
TA贡献1851条经验 获得超4个赞
java.util.Date
的 javadoc 指出:
该类
Date
表示特定的时刻,精度为毫秒。
这就是为什么你和时间有约会
如果你想要一个日期,你可以使用:java.time.LocalDate.now()
(Java 8+)
慕妹3146593
TA贡献1820条经验 获得超9个赞
首先,停止使用旧的java.util.Date
. 新的 Java 8 日期和时间 API 为所有日期和时间操作提供了更好的类。
该类LocalDate
完全按照您的要求进行。当前日期可以通过 获取LocalDate.now()
。
它还具有许多功能来添加和减去天、月等,并且它会考虑到您的所有日历特殊情况。
慕运维8079593
TA贡献1876条经验 获得超5个赞
您可以用来java.time.LocalDate.now()
获取日期。
不管怎样,你的情况并没有像你预期的那样工作,因为你没有做任何事情来删除日期中的时间:你只是“压制”它,这就是为什么它为零。如果你想继续这种方式,你可以随时substring
这样做(Date.toString()
当然我的意思是子串)。
希望我有所帮助。
添加回答
举报
0/150
提交
取消