如何在java中将以下日期字符串转换为Date
。我正在尝试SimpleDateFormat
:
Date parse = sdf.parse("2012-02-14T20:23:40.127");
它扔了:
Exception in thread "main" java.text.ParseException: Unparseable date: "2012-02-14T20:23:40.127"
at java.text.DateFormat.parse(DateFormat.java:357)
at Play.main(Play.java:27)
Java Result: 1
答案 0 :(得分:2)
您(可能)使用了错误的日期格式模式。试试这个:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
以下是此代码的实施内容:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
Date date = sdf.parse("2012-02-14T20:23:40.127");
System.out.println(date);
输出:
Tue Feb 14 20:23:40 EST 2012
答案 1 :(得分:0)
试试这个
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date date = new java.sql.Date(formatter.parse(date_in).getTime());
System.out.println(date);
System.out.println(formatter.format(date));
return date;
其中date_in
是字符串中的日期。
答案 2 :(得分:0)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
try {
Date parse = sdf.parse("2012-02-14T20:23:40.127");
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 3 :(得分:0)
使用Joda-Time库,您可以将该字符串直接传递给DateTime构造函数,因为Joda-Time默认使用此类ISO 8601格式。
传递解释该字符串的时区,因为字符串缺少时区偏移。如果字符串是UTC,则传递常量DateTimeZone.UTC
。
DateTimeZone timeZone = DateTimeZone.forID( "Europe/Paris" );
DateTime dateTime = new DateTime ( "2012-02-14T20:23:40.127", timeZone);
如果您需要java.util.Date对象与其他类一起使用,请从Joda-Time转换。
java.util.Date date = dateTime.toDate();