Java / Android:有奇怪的日期解析问题

时间:2012-10-28 06:25:17

标签: java android date

我正在使用Eclipse和Android版本开发一个Android应用程序作为API-15,(ICS)。

我在将字符串解析为日期对象时遇到了一个奇怪的问题。这是我的代码:

DateFormat df = new SimpleDateFormat("M/d/yyyy h:mm:ss a");
df.setTimeZone(TimeZone.getTimeZone("gmt"));
String st = "1/1/1990 12:00:00 AM";

try {
    Date dt = df.parse( st );
        return dt;
    } catch (ParseException e) {
        return null;
    }

它不断给出ParseException错误。我尝试了各种日期字符串组合,但仍然无法将它们转换为日期对象。

此外,我的字符串应包含UTC的日期+时间,因此要创建的新日期对象将采用UTC格式。

任何想法?

3 个答案:

答案 0 :(得分:0)

您的异常,因为您解析的字符串与您格式化的格式不匹配,请将日期格式更改为如下所述。它总是值得推荐使用两位数的日期或时间格式。

DateFormat df = new SimpleDateFormat(“MM / dd / yyyy hh:mm:ss a”);

答案 1 :(得分:0)

尝试表示日期和两位数的数字“MM / dd / yyyy hh:mm:ss a”。我有这个代码,它对我来说很好:

SimpleDateFormat dfm = new SimpleDateFormat("yyyy-MM-dd");

                     try {

                        date=dfm.parse(datestring);;
                    } catch (ParseException e) {

                        e.printStackTrace();
                    }

答案 2 :(得分:0)

我想我已经追查过这个问题了。这是因为进口混乱。我删除了所有导入并使用了Eclipse的组织导入功能。现在它不再出错了。

我想知道之前导入的代码是否被lint接受了。我认为Java和Android都有两种不同的库来处理日期。现在我只有Java库用于约会。工作正常。

抱歉遇到麻烦的人。