【发布时间】:2018-05-26 18:27:33
【问题描述】:
我有以下代码将日历月增加一个月。
c.add(Calendar.MONTH, 1);
SimpleDateFormat sdf = new SimpleDateFormat("MMM-dd-yyyy");
String oneMonth = sdf.format(c.getTime());
当新日期增加时,我将其显示在 textView 中。我还想显示与新的递增日期对应的星期几。我将如何使用代码来实现这一点?我尝试在上面的代码下设置这个新代码,但在这种情况下它没有正确设置星期几。
SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
Date d = new Date();
String dayOfTheWeek = sdf.format(d);
有人可以帮我完成这个吗?感谢您的时间和帮助。
更新::: 适合我的解决方案:
像这样将“EEEE”添加到原始的简单日期格式中......
SimpleDateFormat sdf = new SimpleDateFormat("EEEE, MMM-dd-yyyy");
String oneMonth = sdf.format(c.getTime());
【问题讨论】:
-
你得到什么结果而不是正确的结果?你的代码在我看来是正确的。
-
您的代码对我有用。两个潜在的问题:(1)您是否记得将
Calendar的日期以与前者相同的方式传递到后者的格式化程序中? (2) 您应该将Locale传递给格式化程序,以便它知道您想要哪种语言。 -
即使在 Android 上,也可以考虑使用 JSR 310,即现代 Java 日期和时间 API,也称为
java.time,通过 API 的 Android 反向端口 ThreeTenABP。与它一起工作要好得多。yourLocalDate.plusMonths(1).format(DateTimeFormatter.ofPattern("EEEE", Locale.ENGLISH))。如果yourLocalDate是 2017 年 12 月 13 日,则这会产生Saturday,因为 2018 年 1 月 13 日是星期六。 -
奥莱,谢谢。它确实有一个例外,我想我忘了解释。新的递增日期将随着用户输入另一个日期而改变。当我使用上面的解决方案时,它确实改变了星期几,但它匹配新用户输入的日期,而不是新的递增日期。我需要它根据新的用户输入日期如何更改日期来匹配新的递增日期。有什么想法吗?
-
Ole,我会试试你上面提到的本地日期格式,让你知道它是否适合我。再次感谢。
标签: android date increment dayofweek