Jodatime日期格式

use*_*165 4 java date date-format jodatime

是否可以格式化JodaTime日期.

这是代码:

   private static LocalDate priorDay(LocalDate date1) {
      do {
         date1 = date1.plusDays(-1);
      } while (date1.getDayOfWeek() == DateTimeConstants.SUNDAY ||
             date1.getDayOfWeek() == DateTimeConstants.SATURDAY); 
      //System.out.print(date1);
      return date1;
   }
Run Code Online (Sandbox Code Playgroud)

这里date1返回为:2013-07-02但我想作为02-JUL-13

提前致谢

Jon*_*eet 13

是否可以格式化JodaTime日期

是.你想要的DateTimeFormatter.

DateTimeFormatter formatter = DateTimeFormat.forPattern("dd-MMM-yy")
    .withLocale(Locale.US); // Make sure we use English month names
String text = formatter.format(date1);
Run Code Online (Sandbox Code Playgroud)

这将给02年7月13日,但你总是可以大写它.

有关详细信息,请参阅用户指南的输入和输出部分.

编辑:或者,根据Rohit的建议:

String text = date1.toString("dd-MMM-yy", Locale.US);
Run Code Online (Sandbox Code Playgroud)

就个人而言,我更喜欢将格式化程序创建为常量,并在需要的任何地方重复使用,但这取决于您.

  • 我觉得你输错了'MM`而不是'MMM`. (2认同)

Bri*_*new 9

查看Joda DateTimeFormatter.

您可能希望通过以下方式使用它:

 DateTime dt = new DateTime();
 DateTimeFormatter fmt = DateTimeFormat.forPattern("dd-MMM-yy");
 String str = fmt.print(dt);
Run Code Online (Sandbox Code Playgroud)

这是比现有的SimpleDateFormat类更好的解决方案.Joda变体是线程安全的.旧的Java变体(违反直觉)不是线程安全的!