将字符串转换为日期

时间:2014-06-27 06:21:04

标签: java

我有字符串

String ackwardDate="2012-10-30T19:14:58";

我需要转换为日期格式。然后尝试这样

     ackwardDate=ackwardDate.replace("T", " ");
           SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");


            try {

                Date date = formatter.parse(ackwardDate);
                System.out.println(date);
                System.out.println(formatter.format(date));

            } catch (ParseException e) {
                e.printStackTrace();
            }
它工作正常。还有其他方法吗?

4 个答案:

答案 0 :(得分:2)

您可以在日期格式中加入T。同时查看您的ackwardDate字符串,您需要使用HH而不是hh,因为它具有24小时格式,并由H表示。

String ackwardDate="2012-10-30T19:14:58";
// ackwardDate=ackwardDate.replace("T", " "); // Not needed anymore
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");

SimpleDateFormat文档可以帮助您了解有关可用模式的更多信息。

答案 1 :(得分:1)

您可以使用:

new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss")

并且不要替换字符&#39; <&#39;

答案 2 :(得分:1)

我认为您不希望T显示您的结果日期和时间,因此只有您使用replace()方法。将T替换为space只是一个简单而且很好的解决方案,如果您不想使用ackwardDate=ackwardDate.replace("T", " ")而不是可以获取日期对象(Date date = formatter.parse(str)),则可以尝试使用此方法对于yyyy-MM-ddTHH:mm:ssdate个对象,您可以单独yyyy-MM-ddHH:mm:sshh:mma获取date。使用 String str = "2012-10-30T19:14:58"; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); SimpleDateFormat formatterDate = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatterTime = new SimpleDateFormat("HH:mm:ss"); try { Date date = formatter.parse(str); System.out.println(date); System.out.println("Complete Date: "+formatter.format(date)); System.out.println("Date: "+formatterDate.format(date)); System.out.println("Time: "+formatterTime.format(date)); System.out.println("Date And Time: "+formatterTime.format(date)+" "+formatterTime.format(date)); } catch (Exception e) { e.printStackTrace(); } 对象作为您的要求。

{{1}}

答案 3 :(得分:1)

如果你知道你将拥有相同的日期字符串格式,那么继续使用SimpleDateFormat,否则最好分割字符串并使用GregorianCalendar创建

`String ackwardDate =&#34; 2012-10-30T19:14:58&#34 ;;

    SimpleDateFormat df = new SimpleDateFormat("yyyy-mm-dd'T'hh:mm:ss");
    try {
        Date dt=df.parse(ackwardDate);
        System.out.println(dt);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }`