datetime—如何在java中将字符串转换为日期和时间

s2j5cfk0  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(480)

这个问题在这里已经有答案了

将json日期转换为java日期(3个答案)
5个月前关门了。
我知道这真的是一个初学者的问题,但似乎我找不到任何好的解决办法。
所以我有一个 String 我从一个json数据库网站上得到:

DateTime = "\/Date(1598036400000)\/"

但问题是我如何转换这个 String 去真正的约会?

zpf6vheq

zpf6vheq1#

由于值不是 long 在最初的表现中 "/Date(1598036400000)/" . 其中的数值 String 表示以毫秒为单位的时刻,必须删除剩余的字符或子字符串。举个例子。。。

public static void main(String[] args) {
    // take the original String value,
    String datetime = "/Date(1598036400000)/";
    // remove anything that isn't a digit,
    String millisStr = datetime.replace("/", "").replace("Date(", "").replace(")", "");
    // then convert it to a long,
    long millis = Long.valueOf(millisStr);
    // and create a moment in time (Instant) from the long
    Instant instant = Instant.ofEpochMilli(millis);
    // and finally use the moment in time to express that moment in a specific time zone 
    ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.of("CET"));
    // and print its default String representation
    System.out.println(zdt);
}

... 哪些输出

2020-08-21T21:00+02:00[CET]

如果你需要一个不同格式的 String ,您可以使用 DateTimeFormatter 甚至可以考虑不同的地区或语言。
输出

System.out.println(zdt.format(
        DateTimeFormatter.ofPattern("EEEE, dd. MMMM yyyy HH:mm:ss", Locale.GERMAN))
);

Freitag, 21. August 2020 21:00:00

相关问题