代码之家  ›  专栏  ›  技术社区  ›  Faisal Abid

Java格式的日期字符串解析〔2012-07-15T20:55:3+000:00〕

  •  0
  • Faisal Abid  · 技术社区  · 12 年前

    我试图解析一个日期为“2012-07-15T20:55:3+00:00”的字符串,但我一直收到非法的参数异常。我不知道我做错了什么。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddzHH:mm:SS+00:00"); 
    String date = "2012-07-15T20:55:33+00:00";
    Log.e("res",sdf.format(date));
    

    投掷

        07-15 12:37:28.436: E/AndroidRuntime(20985): FATAL EXCEPTION: main
    07-15 12:37:28.436: E/AndroidRuntime(20985): java.lang.IllegalArgumentException
    07-15 12:37:28.436: E/AndroidRuntime(20985):    at java.text.DateFormat.format(DateFormat.java:365)
    07-15 12:37:28.436: E/AndroidRuntime(20985):    at java.text.Format.format(Format.java:93)
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   Y2i    12 年前

    您需要使用sdf.parse(date,new ParsePosition(0))而不是sdf.format(date)。

        2
  •  0
  •   AAnkit    12 年前

    如果你使用下面的代码,它会像一个符咒一样工作。

    SimpleDateFormat sdf = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss"); 
    Date date = new Date();
    Log.d("res",sdf.format(date));
    

    您可以在日期对象中设置日期,如 date.setMonth(month); …等等。并且sdf.format将以所需格式返回字符串日期。