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

标签 java

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

Long Value:- 1481394600000

Date:- 2016-12-11 (Actual value)

Date:- 2016-12-10 (I get this)

但是,我在本地设置中获得了正确的值。但远程机器给的时间少了一天。两台机器均处于 UTC 时区。

最佳答案

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

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);
    }
}

结果:

2016-12-11T12:30Z

也许您应该使用 LocalDateTime 和 ZoneDateTime

关于java - 将 Long 转换为 Date 可以减少一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40003261/

相关文章:

java - 如何使用 JDBI 将 2d 数组从 PostgreSQL DB 转换为 java 2d 数组?

java - JMenu Action 监听器

java - 为什么在为 JFrame 设置 BoxLayout 时必须使用 getContentPane() 而不是 "this"?

java - 如何从 ".mp3"字符串中删除 "xxx.mp3"

java - webdriver 中的一系列多个操作

java - 在jsp中显示迭代bean值

java - Python服务器和Java客户端: Server recieves message but Client doesn't receive reply

optimization - 为什么 Java API 使用 int 而不是 short 或 byte?

java - Selenium 代码示例不起作用

java - 在午夜时间用 Java 获取今天的日期