簡體   English   中英

如何在 Java 8 中的 java.util.Date 中獲取特定時間

[英]How to get a particular time in a java.util.Date in Java 8

例如 - 我想要 21:30 作為 java.util.Date

Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY,21);
cal.set(Calendar.MINUTE,30);
cal.set(Calendar.SECOND,0);
cal.set(Calendar.MILLISECOND,0);

Date d = cal.getTime();

在 Java 8 中有更好的方法嗎?

我只想在 java.util.Date 中使用它,因為我想在構建觸發器時在 Quartz api 中的 endAt() 方法中傳遞一個日期。

將新的 java.time 類轉換為 java.util.Date 通常是 go 通過Instant java.Date 例如,要使用今天的日期和系統時區轉換 LocalTime 21:30,您可以使用:

LocalTime nineThirty = LocalTime.of(21, 30);

Date d = Date.from(Instant.from(nineThirty.atDate(LocalDate.now())
                                          .atZone(ZoneId.systemDefault())))

特別是對於 Quartz,您可能希望使用Quartz 中的DateBuilder class而不是舊版Calendar class。

Date d = DateBuilder.todayAt(21, 30, 0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM