使用 jodatime 从字符串日期获取日期名称

get day name from string date using jodatime

我有这样的字符串日期

String s = "29-08-2016";

期望的结果是星期几的名称:

Monday

如何解决?

不使用 JODA 库,使用简单的 java 代码获取星期几名称。

String s = "28-08-2016";
Date date = new SimpleDateFormat("d-M-yyyy").parse(s);
String dayOfWeek = new SimpleDateFormat("EEEE", Locale.ENGLISH).format(date);
System.out.println(dayOfWeek); // Monday

Joda 外卖方便

String date = "29-08-2016";
LocalDate localDate = DateTimeFormat.forPattern("dd-MM-yyyy").parseLocalDate(date);
System.out.println(DateTimeFormat.forPattern("EEEE").print(localDate));

打印:星期一

java.time

Joda-Time 项目现在处于维护模式。该团队建议迁移到 java.time 类。

首先将输入的字符串解析成LocalDate.

DateTimeFormatter f = DateTimeFormatter.ofPattern( "dd-MM-uuuu" );
LocalDate ld = LocalDate.parse( input , f );

现在查询由 DayOfWeek 枚举对象表示的星期几。

DayOfWeek dow = ld.getDayOfWeek();

要求该对象生成本地化名称。

Locale l = Locale.US;  // Or Locale.CANADA_FRENCH etc.
TextStyle ts = TextStyle.FULL_STANDALONE;
String output = ld.getDisplayName( ts , l );