Android:SimpleDateFormat在多个片段中打印重复项

时间:2016-03-09 07:00:10

标签: java android android-fragments

我的应用程序的结构是FragmentTabHost,其中包含Fragment,其中FragmentViewPager,允许用户滚动子片段。

(FragmentTabHost -> Fragment -> ViewPager -> Fragment)

在最终片段中,应显示正在处理的数据的日期。

以下是我用来创建日期的代码:

String format = "MMMM F";
SimpleDateFormat formatter = new SimpleDateFormat(format);
formatter.setTimeZone(TimeZone.getTimeZone("UTC"));
String dateString = (formatter.format(item.getDate("date")) + suffixForDayInDate(item.getDate("date")));
Log.d("RAW DATE", item.getDate("date").toString());
Log.d("AFTER FORMATTING", formatter.format(item.getDate("date")));

输出:

D/RAW DATE: Mon Mar 07 17:00:00 MST 2016
D/AFTER FORMATTING: March 2
D/RAW DATE: Sun Mar 06 17:00:00 MST 2016
D/AFTER FORMATTING: March 1
D/RAW DATE: Sat Mar 05 17:00:00 MST 2016
D/AFTER FORMATTING: March 1
D/RAW DATE: Fri Mar 04 17:00:00 MST 2016
D/AFTER FORMATTING: March 1

请告诉我有人在这里有线索。

1 个答案:

答案 0 :(得分:1)

在下面一行中,您使用了错误的格式来解析日期。它应该是dd而不是F

String format = "MMMM F"; /* Correction Required */

来自JAVA文件:

  

F每周的某一天

     

d每月一天

您应该按如下方式更正:

String format = "MMMM dd";

以下是示例代码段:

public static void main (String[] args)
{
    SimpleDateFormat parser = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzzz yyyy");
    parser.setTimeZone(TimeZone.getTimeZone("UTC"));
    Date dt = parser.parse("Mon Mar 07 17:00:00 MST 2016");

    SimpleDateFormat formatter = new SimpleDateFormat("MMMM dd");
    String date = formatter.format(dt);
    System.out.println(date);
}

输入:

Mon Mar 07 17:00:00 MST 2016

输出:

March 08