我的应用程序的结构是FragmentTabHost
,其中包含Fragment
,其中Fragment
是ViewPager
,允许用户滚动子片段。
(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
请告诉我有人在这里有线索。
答案 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