gpt4 book ai didi

java - 程序化 Joda 时间格式化程序

转载 作者:行者123 更新时间:2023-11-30 04:24:57 25 4
gpt4 key购买 nike

我正在尝试创建 Joda 2.2 DateTimeFormatter 来重构我的代码。我试图重现的行为是

private String getSemesterLabel() {
StringBuilder sb = new StringBuilder(date.toString("yyyy"));
if (date.getMonthOfYear() < 7) {
sb.insert(0, "first semester ");
} else {
sb.insert(0, "second semester ");
}
return sb.toString();
}

获取封装上述行为的 DateTimeFormatter 的最简单方法是什么?

最佳答案

您无法使用内置模式符号打印学期信息(请参阅此 similar issue in a bug report )。您有两个选择:

  1. 从头开始构建逻辑

    您可以使用 DateTimeFormat 类中的静态方法生成 DateTimeFormatter 实例:

    DateTimeFormatter format = DateTimeFormat.forPattern("yyyy");

    您还可以通过调用以下方法从 Joda DateTime 检索一年中的月份:

    myDateTime.monthOfYear().get();


  2. 使用DateTimeFormatterBuilder构造格式化程序

    另一种选择可能是使用 DateTimeFormatterBuilder构造一个显示您首选文本的自定义 DateTimeFormatter。像这样的东西:

    DateTimeFormatterBuilder builder = new DateTimeFormatterBuilder();
    builder.append(DateTimeFormat.forPattern("yyyy"));
    builder.appendLiteral(' ');
    builder.append(new SemesterPrinter());
    return builder.toFormatter();

    其中 SemesterPrinter 需要实现 DateTimePrinter并负责根据提供的日期信息生成文本第一学期第二学期

关于java - 程序化 Joda 时间格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16172568/

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