JodaTime:格式化日期为第1天,第2天,第3天等

vir*_*yes 8 scala jodatime

JodaTime是否提供此功能?我无法在文档中找到,也许我错过了什么?格式化API文档未显示此类功能.

如果不是,那么,解析结果字符串并与日匹配,相应地追加st,nd,th?

看起来像hackish,认为图书馆像JodaTime(它确实摇滚;-))一样全面而精彩,会提供这个看似简单的功能.

Fra*_*kie 18

虽然Joda没有直接实现这一点,但您不需要外部库,只需采用这样的简单实现.

/**
 * Returns the correct suffix for the last digit (1st, 2nd, .. , 13th, .. , 23rd)
 */
public static String getLastDigitSufix(int number) {
    switch( (number<20) ? number : number%10 ) {
        case 1 : return "st";
        case 2 : return "nd";
        case 3 : return "rd";
        default : return "th";
    }
}
Run Code Online (Sandbox Code Playgroud)

响应MHaris,上面的代码产生

for (int i = 0; i < 99; i++) {
    System.out.print(i + getLastDigitSufix(i) + ", ");
}

0th, 1st, 2nd, 3rd, 4th, 5th, 6th, 7th, 8th, 9th, 
10th, 11th, 12th, 13th, 14th, 15th, 16th, 17th, 18th, 19th, 
20th, 21st, 22nd, 23rd, 24th, 25th, 26th, 27th, 28th, 29th, 
30th, 31st, 32nd, 33rd, 34th, 35th, 36th, 37th, 38th, 39th, 
40th, 41st, 42nd, 43rd, 44th, 45th, 46th, 47th, 48th, 49th, 
50th, 51st, 52nd, 53rd, 54th, 55th, 56th, 57th, 58th, 59th, 
60th, 61st, 62nd, 63rd, 64th, 65th, 66th, 67th, 68th, 69th, 
70th, 71st, 72nd, 73rd, 74th, 75th, 76th, 77th, 78th, 79th, 
80th, 81st, 82nd, 83rd, 84th, 85th, 86th, 87th, 88th, 89th, 
90th, 91st, 92nd, 93rd, 94th, 95th, 96th, 97th, 98th, 99th
Run Code Online (Sandbox Code Playgroud)

根据维基百科的英文标准看起来是正确的.


Pau*_*her 3

看一下PrettyTime,它构建在 JodaTime 之上。

  • +1但是,伙计,只是想把这个项目推出去,不要向我扔更多的人;-) (5认同)