gpt4 book ai didi

Java 8 如何在使用 DateTimeFormatter#format 时排除可选部分

转载 作者:搜寻专家 更新时间:2023-11-01 02:19:19 26 4
gpt4 key购买 nike

我将 Java 8 DateTimeFormatter 与具有可选部分的模式一起使用,我希望在格式化为 String 时排除该可选部分

我使用的模式:yyyyMMddHHmmss[.SSS]Z

我如何使用我的 DateTimeFormatter:

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss[.SSS]Z");
String formattedDate = df.format(zonedDateTime);

我期望结果是:20180606052500+0100

代替:20180606052500.000+0100

一种解决方案是使用两个 DateTimeFormatter 但我不希望这样,因为我希望我的 DateTimeFormatter 在一个地方静态定义,以便它可以重复用于解析和格式化。

最佳答案

一个简单的解决方案是重用模式的公共(public)部分来构建 2 种不同的格式:

private static final String META_FORMAT = "yyyyMMddHHmmss%sZ";
private static final DateTimeFormatter FOR_PARSING = DateTimeFormatter.ofPattern(String.format(META_FORMAT, "[.SSS]"));
private static final DateTimeFormatter FOR_FORMATTING = DateTimeFormatter.ofPattern(String.format(META_FORMAT, ""));

这样你就没有重复的模式。

关于Java 8 如何在使用 DateTimeFormatter#format 时排除可选部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53496019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com