Java - 如何将此字符串转换为日期?

时间:2012-08-28 10:30:57

标签: java simpledateformat

我从服务器收到这个,我不明白T和Z意味着什么,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么?

7 个答案:

答案 0 :(得分:8)

这是ISO 8601标准版。你可以使用

SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

转换它。

答案 1 :(得分:2)

RSS 2.0 format string EEE, dd MMM yyyy HH:mm:ss z   
Example: Tue, 28 Aug 2012 06:55:11 EDT

Atom (ISO 8601) format string  yyyy-MM-dd'T'HH:mm:ssz
Example:2012-08-28T06:55:11EDT

try {
            String str_date = "2012-08-24T09:59:59Z";
            DateFormat formatter;
            Date date;
            formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
            date = (Date) formatter.parse(str_date);
            System.out.println("Today is " + date);
        } catch (ParseException e) {
            System.out.println("Exception :" + e);
        } 

答案 2 :(得分:2)

Z代表Zulu(UTC),这是dateTime.tz格式(ISO-8601)。所以,你应该能够做到这样的事情:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

这里有一个例子:example

答案 3 :(得分:2)

这是ISO日期时间格式,请参阅here,T是时间分隔符,Z是零UTC偏移的区域指示符。

有一个非常相似但如果不相同的问题here,请知道如何将此字符串转换为Java DateTime对象。

答案 4 :(得分:1)

import org.joda.time.*;
import org.joda.time.format.*;

public class Test {
    public static void main(String[] args) {
        String text = "2012-08-24T09:59:59Z";
        DateTimeFormatter parser = ISODateTimeFormat.dateTime();
        DateTime dt = parser.parseDateTime(text);

        DateTimeFormatter formatter = DateTimeFormat.mediumDateTime();
        System.out.println(formatter.print(dt));
    }
}

或只是检查该链接 str to date

答案 5 :(得分:0)

也许使用优秀的joda time库将String转换为日期:

LocalDate myDate = new LocalDate("2012-08-28") // the constructor need an Object but is internally able to parse a String.

答案 6 :(得分:-1)

// First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.

String dateString1 = "2012-08-24T09:59:59Z";
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);

// Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
System.out.println(dateString2); // 08/24/12 at 09:59AM

我认为这可能对你有用。