多亏了Giulio Piancastelli,我现在拥有一个具有多行功能的列表视图.现在我在第二行格式化日期时遇到问题.所有日期都一样.在饲料中他们是不同的.我需要有人帮我格式化日期,月份,年份(2011年10月27日星期四).
这是不起作用的代码:
List<Map<String, String>> data = new ArrayList<Map<String, String>>(); for (RSSItem item : Feed.getAllitems()) { Map<String, String> datum = new HashMap<String, String>(2); datum.put("Title", item.getTitle()); String dateStr = item.getPubDate(); SimpleDateFormat curFormater = new SimpleDateFormat("EEEE, MMMM dd, yyyy"); Date dateObj = new Date(); try { dateObj = curFormater.parse(dateStr); } catch (ParseException e) { // Todo auto-generated catch block e.printstacktrace(); } SimpleDateFormat postFormater = new SimpleDateFormat("EEEE, MMMM dd, yyyy"); String newDateStr = postFormater.format(dateObj); datum.put("date", newDateStr); data.add(datum); } SimpleAdapter adapter = new SimpleAdapter(this, data, androID.R.layout.simple_List_item_2, new String[] {"Title", "date"}, new int[] {androID.R.ID.text1, androID.R.ID.text2}); itemList.setAdapter(adapter); itemList.setonItemClickListener(this); itemList.setSelection(0);
如果我删除以前的日期代码,它工作正常,但格式不正确.
此代码确实有效,但格式不正确:
List<Map<String, String>> data = new ArrayList<Map<String, String>>(); for (RSSItem item : Feed.getAllitems()) { Map<String, String> datum = new HashMap<String, String>(2); datum.put("Title", item.getTitle()); datum.put("date", item.getPubDate().toString()); data.add(datum); } SimpleAdapter adapter = new SimpleAdapter(this, data, androID.R.layout.simple_List_item_2, new String[] {"Title", "date"}, new int[] {androID.R.ID.text1, androID.R.ID.text2}); itemList.setAdapter(adapter); itemList.setonItemClickListener(this); itemList.setSelection(0);
我需要有人帮我格式化日期,月份,年份(2011年10月27日星期四).谢谢!
解决方法:
问题是您尝试使用您稍后用于格式化的相同模式来解析字符串.你应该用它已经存在的模式解析它,看起来像“星期五,2011年10月21日12:00:00 GMT”显然.
所以我怀疑你想要的东西:
// You probably actually want to set the time zone of the// formatting pattern - but you'll need to think what time zone you// really want. We don't kNow enough to say. Ditto the locale...private static final DateFormat PARSING_PATTERN = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US); private static final DateFormat FORMATTING_PATTERN = new SimpleDateFormat("EEEE, MMMM dd, yyyy"); ...for (RSSItem item : Feed.getAllitems()) { Map<String, String> datum = new HashMap<String, String>(2); datum.put("Title", item.getTitle()); String outputDate; try { Date date = PARSING_PATTERN.parse(item.getPubDate()); outputDate = FORMATTING_PATTERN.format(date); } catch (ParseException e) { outputDate = "InvalID date"; // Or whatever... } datum.put("date", outputDate); data.add(datum);}
总结 以上是内存溢出为你收集整理的java – ListView中的Android日期格式全部内容,希望文章能够帮你解决java – ListView中的Android日期格式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)