0

我有一个日期为 02/21/2013 04:52:10 PM 这种格式。

如何将其转换为 MM-dd-yyyy HH:mm。我已经尝试了几件事,但它一直在抛出错误

java.text.ParseException:无法解析的日期:“02/21/2013 04:52:10 PM”(偏移量 2)

我真的需要日期格式专家的帮助。谢谢

4

3 回答 3

0

构造两个 SimpleDateFormat 对象。第一次将值从 parse() 转换为 Date 对象,第二次用于将 Date 对象转换回字符串,例如

try {
  DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
  DateFormat df2 = new SimpleDateFormat("dd-MMM-yyyy");
  return df2.format(df1.parse(input));
}
catch (ParseException e) {
  return null;
}

解析可能会引发 ParseException,因此您需要捕获并处理它。

另外,检查一下:-

http://developer.android.com/reference/java/text/SimpleDateFormat.html

和更多:-

http://msdn.microsoft.com/en-us/library/aa226054(SQL.80).aspx

和更多:-

日期格式转换Android

于 2013-02-21T17:18:46.090 回答
0

试试这个:

DateFormat inputFormat = new SimpleDateFormat("mm/dd/yyyy hh:mm:ss a", Locale.getDefault());
DateFormat outputFormat = new SimpleDateFormat("MM-dd-yyyy HH:mm", Locale.getDefault());

try {
    System.out.println("Converted: " + outputFormat.format(inputFormat.parse("02/21/2013 04:52:10 PM")));
} catch (ParseException e) {
    e.printStackTrace();
}

输出:01-21-2013 16:52

结帐http://docs.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html了解更多

干杯

于 2013-02-21T17:28:48.957 回答
0

您需要验证您的字符串是否有 / 或 - 在掩码中,如果有 / 那么您必须使用:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss", LOCALE_BR);
Date convert = sdf.parse(data);     

如果你的字符串有 - 那么你必须使用:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", LOCALE_BR);
    Date convert = sdf.parse(data);   

或者,使用replace()for 改变字符 - for /

于 2013-02-21T17:33:51.800 回答