小编典典

我想从 Java 日期中获取年、月、日等,以与 Java 中的公历日期进行比较。这可能吗?

all

我在 Java 中有一个 Date 对象,存储为 Java 的 Date 类型。

我也有一个公历创建日期。公历日期没有参数,因此是今天日期(和时间?)的一个实例。

使用 java 日期,我希望能够从 java 日期类型中获取年、月、日、小时、分钟和秒,并比较 gregoriancalendar 日期。

我看到目前 Java 日期存储为 long 并且唯一可用的方法似乎只是将 long 写入格式化的日期字符串。有没有办法访问年、月、日等?

我看到 class 的getYear(),getMonth()等方法Date已被弃用。我想知道在日期中使用 Java Date
实例的最佳实践是什么GregorianCalendar

我的最终目标是进行日期计算,以便我可以检查 Java 日期是否在今天日期和时间的这么多小时、分钟等范围内。

我仍然是Java的新手,对此感到有些困惑。


阅读 86

收藏
2022-05-16

共1个答案

小编典典

使用类似的东西:

Date date; // your date
// Choose time zone in which you want to interpret your Date
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Europe/Paris"));
cal.setTime(date);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
// etc.

请注意,月份从 0 开始,而不是 1。

编辑 :从 Java 8
开始,最好使用java.time.LocalDate而不是java.util.Calendar。请参阅此答案以了解如何操作。

2022-05-16