我在Java中有一个Date对象存储为Java的Date类型 .
我还有一个格里高利历创建日期 . 格里历日历日期没有参数,因此是今天日期(和时间?)的实例 .
使用java日期,我希望能够从java日期类型中获取年,月,日,小时,分钟和秒,并比较gregoriancalendar日期 .
我看到目前Java日期存储为long,并且唯一可用的方法似乎只是将long写为格式化的日期字符串 . 有没有办法访问年,月,日等?
我看到 Date
类的 getYear()
, getMonth()
等方法已被弃用 . 我想知道在 GregorianCalendar
日期使用Java Date实例的最佳做法是什么 .
我的最终目标是进行日期计算,以便我可以检查Java日期是否在今天的日期和时间的这么多小时,分钟等之内 .
我仍然是Java的新手,我对此感到有些困惑 .
9 回答
使用类似的东西:
当心,几个月从0开始,而不是1 .
Edit :从Java 8开始,最好使用java.time.LocalDate而不是java.util.Calendar . 有关如何操作,请参阅this answer .
使用Java 8及更高版本,您可以将Date对象转换为LocalDate对象,然后轻松获取年,月和日 .
请注意,
getMonthValue()
返回1到12之间的int值 .你可以做这样的事情,它将解释
Date
类是如何工作的 .编辑:
date
=Fri Jun 15 09:20:21 CEST 2018
的输出是:这可能更容易
getYearMonthDay2(日历解决方案)快十倍 . 现在你有yyyy MM dd 00 00 00,然后使用date.compare进行比较
小心安装从0开始而不是1.并且日历使用pm就像我在使用小时和分钟时非常小心 .