给定LocalDate时如何获得当天的结束?
我可以做到这一点
LocalDateTime.of(LocalDate.now(), LocalTime.of(23, 59, 59));
Run Code Online (Sandbox Code Playgroud)
但是在一天结束时是否有相同的'atStartOfDay'方法?
LocalDate.now().atStartOfDay();
LocalDate.now().atEndOfDay(); //doesn't work
Run Code Online (Sandbox Code Playgroud)
ass*_*ias 78
以下是一些替代方案,具体取决于您的需求:
LocalDate.now().atTime(23, 59, 59); //23:59:59
LocalDate.now().atTime(LocalTime.MAX); //23:59:59.999999999
Run Code Online (Sandbox Code Playgroud)
但是没有内置方法.
正如@JBNizet评论的那样,如果你想创建一个间隔,你也可以使用一个间隔到午夜,独家.
Rob*_*unt 21
这些是变体LocalTime,通知MIDNIGHT和MIN相同的变体.
LocalDate.now().atTime(LocalTime.MIDNIGHT); //00:00:00.000000000
LocalDate.now().atTime(LocalTime.MIN); //00:00:00.000000000
LocalDate.now().atTime(LocalTime.NOON); //12:00:00.000000000
LocalDate.now().atTime(LocalTime.MAX); //23:59:59.999999999
Run Code Online (Sandbox Code Playgroud)
作为参考,这是实现中的 java.time.LocalTime
/**
* Constants for the local time of each hour.
*/
private static final LocalTime[] HOURS = new LocalTime[24];
static {
for (int i = 0; i < HOURS.length; i++) {
HOURS[i] = new LocalTime(i, 0, 0, 0);
}
MIDNIGHT = HOURS[0];
NOON = HOURS[12];
MIN = HOURS[0];
MAX = new LocalTime(23, 59, 59, 999_999_999);
}
Run Code Online (Sandbox Code Playgroud)
从第二天开始,减去1秒钟.这应该适合你.:
public static void main(String[] args) {
LocalDate date = LocalDate.now();
LocalDateTime dt = date.atStartOfDay().plusDays(1).minusSeconds(1);
System.out.println(dt);
}
Run Code Online (Sandbox Code Playgroud)
O/P:
2016-04-04T23:59:59
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23792 次 |
| 最近记录: |