考虑下面的代码
Instant instant = Instant.now();
System.out.println(instant);
结果:
2020-01-13T09:01:06.405Z
现在从上面的结果我想得到当前的小时和分钟。
考虑下面的代码
Instant instant = Instant.now();
System.out.println(instant);
结果:
2020-01-13T09:01:06.405Z
现在从上面的结果我想得到当前的小时和分钟。
instant.atZone(ZoneOffset.UTC).getMinute()
和
instant.atZone(ZoneOffset.UTC).getHour()
(这适用于 UTC;否则请选择您的时区)。
你能试着这样做吗
System.out.println("Get Hours "+LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC).getHour());
System.out.println("Get Minute "+LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC).getMinute());
如果您想知道系统时区Instant
的单个部分,请执行以下操作:
public static void main(String[] args) {
Instant instant = Instant.now();
// convert the instant to a local date time of your system time zone
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
int day = ldt.getDayOfMonth();
int month = ldt.getMonthValue();
int year = ldt.getYear();
int hour = ldt.getHour();
int minute = ldt.getMinute();
int second = ldt.getSecond();
System.out.println("day:\t" + day);
System.out.println("month:\t" + month);
System.out.println("year:\t" + year);
System.out.println("hour:\t" + hour);
System.out.println("minute:\t" + minute);
System.out.println("second:\t" + second);
}
在我的系统上,输出是:
day: 13
month: 1
year: 2020
hour: 10
minute: 38
second: 51
否则(如果你想拥有UTC time zone)使用其他答案之一,它们基本上是相同的代码,但放置了不同的时区。