在Android中解析和格式化日期

时间:2014-03-20 06:14:52

标签: java android datetime date-format simpledateformat

我在解析日期时遇到问题。我是android的新手并尝试搜索解决方案,但似乎没有运气。我已经尝试过这个http://developer.android.com/reference/java/text/SimpleDateFormat.html,但仍然出错。 请帮帮我..

我尝试解析此日期2014-03-18T02:07:35.742-0400并尝试格式化为此03/18/2014 02:07

我收到了这个错误:

java.lang.IllegalArgumentException 
at java.text.DateFormat.format(DateFormat.java:361) 
at java.text.Format.format(Format.java:93)

3 个答案:

答案 0 :(得分:2)

尝试这样的事情:

Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").parse("2014-03-18T02:07:35.742-0400");
System.out.println(new SimpleDateFormat("MM/dd/yyyy HH:mm").format(date));

我的时区打印:

  

03/18/2014 10:07

答案 1 :(得分:1)

private final DateFormat parsedFormat = new SimpleDateFormat("MM/dd/yyyy HH:mm", Locale.getDefault());
private final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ", Locale.getDefault());

Date date = dateFormat.parse(dateFormat.format(your_date));
Date parsedDate = parsedFormat.parse(parsedFormat.format(date));

<强> Reference

答案 2 :(得分:0)

使用以下代码

try{
        String srcDate = new String("2014-03-18T02:07:35.742-0400");
        SimpleDateFormat srcDf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
        SimpleDateFormat destDf = new SimpleDateFormat("yyyy/MM/dd");
        Date date = srcDf.parse(srcDate);
        // format the date into another format
        dateStr = destDf.format(date);


    }catch (ParseException e) {
        // TODO: handle exception
    }