将日期转换为纪元 Java

Rak*_*Pai 1 java datetime epoch simpledateformat datetime-parsing

我想将2018-02-21 15:47:35UTC转换为纪元 UTC 形式。我们该怎么做呢?我目前在 PST。

SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS");

df.setTimeZone(TimeZone.getTimeZone("UTC"));
date = df.parse(dateString).getTime();
Run Code Online (Sandbox Code Playgroud)

上面的代码应该返回自 以来的毫秒数January 1, 1970, 00:00:00 GMT,但我得到的值不正确。

rif*_*qat 5

您的代码唯一的问题是 DateFormat

请检查。 https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

    String dateString = "2018-02-21 15:47:35";
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    df.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date date = df.parse(dateString);
    long time = date.getTime();

    System.out.println(time);
    System.out.println(new Date(time));
    System.out.println(date);
Run Code Online (Sandbox Code Playgroud)

我在PKT所以输出会有所不同......

1519228055000
Wed Feb 21 20:47:35 PKT 2018
Wed Feb 21 20:47:35 PKT 2018
Run Code Online (Sandbox Code Playgroud)