日期格式的getLongDateFormat()不显示星期几

时间:2014-08-10 20:04:44

标签: android android-date

我创建了一个私有方法来接收日期,并将其格式化为“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作为我的目标。

4 个答案:

答案 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>

有关格式字符串参考,请参阅此图像 reference

要获取更多格式字符串符号,请查看http://developer.android.com/reference/java/text/SimpleDateFormat.html

希望这有帮助