java8时间包以基于GMT时区执行代码块

时间:2018-09-09 17:24:14

标签: java time java-8

我们有一个要求,它属于java.time,我想我可以使用此包来完全填充它,但没有正确的方法;这是场景

我们的应用程序正在服务器上运行,我们不知道服务器的本地时区。 但是我们必须每天从格林尼治标准时间凌晨2:00到凌晨6:00运行应用程序代码块(while循环),我该如何实现它,谢谢。

LocalTime localTime = LocalTime.now();
System.out.println("Localtime: "+localTime);
LocalTime localTimeGMT = LocalTime.now(ZoneId.of("GMT"));

2 个答案:

答案 0 :(得分:4)

要检查当前GMT时间是否在凌晨2点到6点之间,请执行以下操作:

    public PoemOutDto(BigDecimal id, String title, String category, String description, Integer publicationYear,
                  String publicationStmt, String sourceDesc, String period, String form, boolean confirmed,
                  java.util.Date confirmedAt, String confirmedBy, boolean pendingRevision, BigDecimal authorId,
                  String firstName, String lastName, String text) 

答案 1 :(得分:3)

您可以使用ZonedDateTime并指定timeZone。您可以从ZonedDateTime中获取小时。

System.out.println(ZonedDateTime.now(ZoneId.of("GMT")));

            int hour = ZonedDateTime.now(ZoneId.of("GMT")).getHour();
            if(hour>=2 && hour<6)
            {
                //some logic 
            }