java - Android:SimpleDateFormat 在多个 fragment 中打印重复项

标签 java android android-fragments

我的应用程序的结构是一个 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/

相关文章:

android - 带有 Activity 和 fragment 的自定义抽屉导航

java - 是否可以将Nuiton-CSV导出到读取器或Inputstream中?

java - ANDROID数据库找不到列_id,即使它是KEY_ID=_id

Android 使用 ListView 查看分页器并动态添加文本

java - 在再次播放之前停止 MediaPlayer 不起作用

Android ADK - 在游戏 handle 上工作

android - 如果已经对所有页面发出网络请求,如何防止 viewpager 发出网络请求

java - Spring Boot 似乎没有找到 Repository

java - android 尝试乘法和显示 double 时出现错误

java - 如何直接使用ByteBuffer