-2

考虑下面的代码

Instant instant = Instant.now();
System.out.println(instant);

结果:

2020-01-13T09:01:06.405Z

现在从上面的结果我想得到当前的小时和分钟。

4

3 回答 3

9

instant.atZone(ZoneOffset.UTC).getMinute()

instant.atZone(ZoneOffset.UTC).getHour()

(这适用于 UTC;否则请选择您的时区)。

于 2020-01-13T09:21:45.957 回答
1

你能试着这样做吗

    System.out.println("Get Hours  "+LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC).getHour());
    System.out.println("Get Minute "+LocalDateTime.ofInstant(Instant.now(), ZoneOffset.UTC).getMinute());
于 2020-01-13T09:21:45.600 回答
1

如果您想知道系统时区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)使用其他答案之一,它们基本上是相同的代码,但放置了不同的时区。

于 2020-01-13T09:37:46.193 回答