Java:字符串到日期转换

时间:2014-05-11 03:11:00

标签: java

如何在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

4 个答案:

答案 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();