java : Cannot format given Object as a Date

标签 java

我有这种格式的日期 (2012-11-17T00:00:00.000-05:00)。我需要将日期转换成这种格式 mm/yyyy。

我尝试过这种方式,但我得到了这个异常。

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
    at java.text.DateFormat.format(Unknown Source)
    at java.text.Format.format(Unknown Source)
    at DateParser.main(DateParser.java:14)

请看我下面的代码:

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParser {    
  public static void main(String args[]) {   
    String MonthYear = null;    
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("mm/yyyy");    
    String dateformat = "2012-11-17T00:00:00.000-05:00";
    MonthYear = simpleDateFormat.format(dateformat);    
    System.out.println(MonthYear);    
  }    
}

最佳答案

DateFormat.format 仅适用于 Date 值。

您应该使用两个 SimpleDateFormat 对象:一个用于解析,一个用于格式化。例如:

// Note, MM is months, not mm
DateFormat outputFormat = new SimpleDateFormat("MM/yyyy", Locale.US);
DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX", Locale.US);

String inputText = "2012-11-17T00:00:00.000-05:00";
Date date = inputFormat.parse(inputText);
String outputText = outputFormat.format(date);

编辑:请注意,您可能希望在格式中指定时区和/或语言环境,并且您应该考虑使用 Joda Time而不是所有这些都开始 - 它是一个更好的日期/时间 API。

关于 java : Cannot format given Object as a Date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10649782/

相关文章:

java - 如何使用 BaseAdapter 为自定义 ListView 编写 onitemClickListener 代码?

带有 SSL 的 Java RMI - SSL 握手的性能/频率

java - 无法从 Sun 文档中理解哈希表的泊松部分

java - 使用 java 链接 XML 和 XSD

java - 使用 jSoup 解析最里面的 html 标签

java - 为了学习 CDI 我应该了解 EJB

java - 在 JUnit 中记录失败的假设

java - 使用 jSoup 将文本存储到字符串中

java - 无法使用 apache poi 从 Excel 文件读取

java - 为什么Selenium要在属性中添加空格?