我的应用程序的结构是一个 FragmentTabHost
,它包含一个 Fragment
,在 Fragment
里面是一个 ViewPager
这允许用户滚动子 fragment 。
(FragmentTabHost -> Fragment -> ViewPager -> Fragment)
在最终 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
请告诉我有人在这里有线索。
最佳答案
在下一行中,您使用了不正确的格式来解析您的日期。它应该是 dd
而不是 F
。
String format = "MMMM F"; /* Correction Required */
来自 JAVA 文档:
F Day of week in month
d Day in month
你应该更正它如下:
String format = "MMMM dd";
这是示例代码 fragment :
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
关于java - Android:SimpleDateFormat 在多个 fragment 中打印重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35885009/