将Long转换为Date可以减少一天

时间:2016-10-12 16:05:31

标签: java

我使用new Date(long)将长值转换为日期,以获得我本地机器给出的相同值

  

长期值: - 1481394600000

     

日期: - 2016-12-11(实际值)

     

日期: - 2016-12-10(我明白了)

但是,我在本地设置中获得了适当的价值。但远程机器少了一天。这两台机器都在UTC时区。

1 个答案:

答案 0 :(得分:1)

在我的本地计算机上运行:

recv

结果:

import java.time.LocalDateTime;
import java.time.Month;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;

public class Test {

    public static void main(String[] args) {

        LocalDateTime dateTime = LocalDateTime.of(2016, Month.DECEMBER, 11, 12, 30);
        ZonedDateTime zdt = dateTime.atZone(ZoneOffset.UTC);

        String dataInUTC = zdt.toString();
        System.out.println(dataInUTC);
    }
}

也许你应该使用LocalDateTime和ZoneDateTime