我创建了一个私有方法来接收日期,并将其格式化为“2014年8月10日星期日”:
private String formatDate(Date date){
java.text.DateFormat dateFormat = android.text.format.DateFormat.getLongDateFormat(getActivity().getApplication());
return dateFormat.format(date);
}
在我的片段的OnCreateView方法中,我使用该方法设置按钮的文本:
mDateButton.setText(formatDate(new Date()));
然而,当我运行我的应用程序时,它只是说“2014年8月10日”。这对我来说没有意义,因为Android文档说getLongDateFormat()应该显示星期几(http://developer.android.com/reference/android/text/format/DateFormat.html#getLongDateFormat(android.content.Context))。我是否错误地使用了getLongDateFormat()?
我正在使用Android API Level 19作为我的目标。
答案 0 :(得分:4)
private String SetFormatDate(Date date) {
java.text.DateFormat dateFormat = java.text.DateFormat.getDateInstance(java.text.DateFormat.FULL);
return dateFormat.format(date);
}
答案 1 :(得分:2)
我遇到了同样的问题,它只显示了日期(没有工作日)。我找到了另一种获取相应日期字符串的方法:
android.text.format.DateUtils.formatDateTime(getApplicationContext(),
millis,
android.text.format.DateUtils.FORMAT_SHOW_WEEKDAY | android.text.format.DateUtils.FORMAT_SHOW_DATE | android.text.format.DateUtils.FORMAT_SHOW_YEAR);
这是一个静态函数,您可以轻松定义日期字符串中要包含的部分。表示已本地化。
请参阅http://developer.android.com/reference/android/text/format/DateUtils.html
答案 2 :(得分:1)
你也可以这样做
private String formatDate(Date date){
java.text.DateFormat df = android.text.format.DateFormat.getLongDateFormat(getActivity().getApplicationContext());
return android.text.format.DateFormat.format("EEEE", date) + ", " + df.format(date);
}
答案 3 :(得分:0)
private String formatDate(Date date)
{
return DateFormat.format("EEEE, dd MMMM yyyy", date); //import android.text.format.DateFormat;
}
输出:Tuesday, 27 October 2015
第一个参数是格式字符串,第二个参数是当前日期。 您可以通过更改第一个参数(即格式字符串)来更改日期的格式。查看 符号列 中的符号以及下图中 示例列 的变体。< / p>
要获取更多格式字符串符号,请查看http://developer.android.com/reference/java/text/SimpleDateFormat.html
希望这有帮助