java - 使用 joda-time 输出可读的日期

标签 java jodatime

我试图让 jodatime DateTime 对象以我想要的格式输出。目前,我的格式字符串是:

dt.toString("EEEE dd\nMMMM YYYY");

这输出为:

Wednesday 04
June 2014

但是我想显示带有后缀的DAY,例如:

第 1第 2第 3第 4

是否有使用 jodatime 执行此操作的内置方法,还是我必须为此编写自己的函数?

最佳答案

DateTime dt = new DateTime();
String formatFirst = "EEEE dd'st'\nMMMM YYYY";
String formatSecond = "EEEE dd'nd'\nMMMM YYYY";
String formatThird = "EEEE dd'rd'\nMMMM YYYY";
String formatStd = "EEEE dd'th'\nMMMM YYYY";

String pattern;

switch (dt.getDayOfMonth()) {
  case 1:
  case 21:
  case 31:
    pattern = formatFirst;
    break;
  case 2:
  case 22:
    pattern = formatSecond;
    break;
  case 3:
  case 23:
    pattern = formatThird;
    break;
  default:
    pattern = formatStd;
}

String output = dt.toString(pattern, Locale.ENGLISH);
System.out.println(output);

关于java - 使用 joda-time 输出可读的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24039973/

相关文章:

java - 通过 Spring Boot 仅在 Release 内(仅最后更新文件)进行可重复迁移

java - ArrayList 限制为 10 个值

Java3d光照问题

jodatime - Joda-Time 的运行时间

java - Joda api 不返回正确的伊斯兰日期

java - Tomcat 自己关机

java - 在定义之前引用匿名内部类

java - 如何获取当年1月1日开始至今的小时数?

java - 如何跟踪 Joda 日期缓冲区中的非空字段

jodatime - 根据秒数计算天、小时、分钟和秒的持续时间