Java DataTimeFormatter-自纪元以来的Millis

问题描述 投票:0回答:1

我正在尝试使用JIRA smart values将日期转换为自纪元以来的等效毫秒。

例如:将2020-05-27T02:11:32.000设为1590509492000

文档说您还可以使用Java DateTimeFormatter类(link)中的格式。

我已经尝试了以下所有方法。这可能吗?

{{now.format("n")}}
{{now.format("A")}}
{{now.toCurrentTime.format("nnnn")}}
{{now.fullDateTime.format("AAAA")}}",
{{now.fullDateTime.format("n")}}",
{{now.fullDateTime.format("A")}}",
{{now.toCurrentTime.millis}}",
{{now.toDateTimeAtCurrentTime.format("n")}}",
{{now.toDateTimeAtCurrentTime.format("A")}}",
{{now.toDateTimeAtCurrentTime.millis}}"
java datetime datetime-format epoch
1个回答
0
投票

是的,可以做到。

    ZoneId zone = ZoneId.of("Asia/Vladivostok");
    DateTimeFormatter epochMilliFormatter = new DateTimeFormatterBuilder()
            .appendValue(ChronoField.INSTANT_SECONDS)
            .appendValue(ChronoField.MILLI_OF_SECOND, 3)
            .toFormatter();

    LocalDateTime ldt = LocalDateTime.parse("2020-05-27T02:11:32.000");
    ZonedDateTime zdt = ldt.atZone(zone);
    String formattedMilliseconds = zdt.format(epochMilliFormatter);
    System.out.println("Formatted into milliseconds since the epoch: " + formattedMilliseconds);

您希望从此示例代码段中输出:

自时期以来以毫秒为单位:1590509492000

我不知道您的时区,所以如果不是恰好是那个,请用代码替换Asia / Vladivostok。

尽管它不适合吉拉,对不起。

© www.soinside.com 2019 - 2024. All rights reserved.