Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用jodatime从字符串date获取日期名称_Java_Date_Jodatime - Fatal编程技术网

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

Java 使用jodatime从字符串date获取日期名称,java,date,jodatime,Java,Date,Jodatime,我有这样的约会 String s = "29-08-2016"; 所需结果是一周中某一天的名称: 星期一 如何解决这个问题?不使用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

我有这样的约会

String s = "29-08-2016";
所需结果是一周中某一天的名称:

星期一


如何解决这个问题?

不使用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
乔达的简易外卖

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类

首先将输入字符串解析为一个字符串

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

DayOfWeek dow = ld.getDayOfWeek();
要求该对象生成本地化名称

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

这听起来基本上是另一个解析和重新格式化问题,其中输出格式只是星期几。到目前为止你试过什么吗?你尝试了什么,发生了什么?你有没有看过其他重新格式化的问题,并尝试过应用相同的技术,只是用你的特定格式?请检查我的答案中的代码,它会对你有用。我想找到一个简单的方法,如果可以使用joda lib听上去与此类似的话。您只需要将字符串解析为LocalDate,然后使用链接确定星期几的名称。请检查此答案。为什么先拆分,然后重新组装?为什么不解析原始字符串呢?现在我喜欢它了-@感谢您的建议:啊哈,这是一种优雅的方法,谢谢先生
Locale l = Locale.US;  // Or Locale.CANADA_FRENCH etc.
TextStyle ts = TextStyle.FULL_STANDALONE;
String output = ld.getDisplayName( ts , l );