Android中使用DateFormat的java.lang.IllegalArgumentException

时间:2013-09-11 05:29:24

标签: java android simpledateformat

这是我的代码片段

此处日期为2013年9月10日09:53:37格式

TextView tvDate = (TextView) convertView.findViewById(R.id.entered_date);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
tvDate.setText(dateFormat.format(salesReportItems.getDate().toString()));
TextView tvCardType = (TextView) convertView.findViewById(R.id.card_type);
tvCardType.setText(salesReportItems.getCardType().toString());

请帮我解决这个问题。我的错误就是这样。 enter image description here

亲爱的Piyush,

当我使用你的代码

时,这里有用

enter image description here

6 个答案:

答案 0 :(得分:1)

尝试使用这样的代码..

如果salesReportItemsDate类型对象,那么..

String timeStamp = new SimpleDateFormat("yyyy-MM-dd")
                    .format(salesReportItems);
tvDate.setText(timeStamp);

答案 1 :(得分:1)

我想这一行

tvDate.setText(dateFormat.format(salesReportItems.getDate().toString()));

需要像这样。

tvDate.setText(dateFormat.format(salesReportItems.getDate()));

答案 2 :(得分:1)

TextView tvDate = (TextView) convertView.findViewById(R.id.entered_date);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

删除你的第三行,  将日期作为字符串,

String date=salesReportItems.getDate().toString();

使用System.out.println(date);到目前为止显示在Logcat中;

来自观察到的日期形式字符串,模式如下;

sring str="1990-08-27";

然后使用,

tvDate.setText(dateFormat.format(str));

而不是dateFormat.format使用dateFormat.parse(str);

答案 3 :(得分:1)

使用此:

   public  String FormatDate(String dateString) {

    try {
        SimpleDateFormat sd = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss"");
        Date d = sd.parse(dateString);
        sd = new SimpleDateFormat("yyyy-MMM-dd");
        System.out.println(sd.format(d));
        return sd.format(d);
    } catch (Exception e) {
    }
    return "";
}

答案 4 :(得分:1)

创建如下方法

private String formatDate(String dateString) {
        try {
            SimpleDateFormat sd = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss" /* 10-Sep-2013 09:53:37*/);
            Date d = sd.parse(dateString);
            sd = new SimpleDateFormat("yyyy-MM-dd");
            return sd.format(d);
        } catch (ParseException e) {
        }
        return "";
    }

然后将其称为

tvDate.setText(formatDate(salesReportItems.getDate().toString()));

详细了解How can I change the date format in Java?

答案 5 :(得分:0)

try {
SimpleDateFormat sd = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss");
Date d = sd.parse(salesReportItems.getDate().toString());
sd = new SimpleDateFormat("yyyy-MM-dd");
TextView tvDate = (TextView) convertView.findViewById(R.id.entered_date);
tvDate.setText(sd.format(d));
} catch (Exception e) {
    e.printStackTrace();
}

使用上面的代码排序的问题。 谢谢亲爱的Piyush Gupta.your指南支持我解决这个问题 : - )