将字符串转换为日期错误

时间:2013-09-27 08:27:36

标签: java android datetime

我有这样的日期字符串值:星期五,2013年9月27日08:29:59 GMT 我需要,以日期格式转换它 我试过这样:

private Date modifyDateLayout(String inputDate) {
        DateFormat format = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
        format.setTimeZone (TimeZone.getTimeZone ("GMT"));
        Date d = null;
        try {
        d = format.parse(inputDate);
        } catch (ParseException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return d;
    }

但它不起作用,e = null 我哪里错了? 谢谢你的帮助

6 个答案:

答案 0 :(得分:2)

尝试此功能完美

private Date modifyDateLayout(String inputDate) {
        SimpleDateFormat format = new SimpleDateFormat("EEE, dd-MMM-yyyy hh:mm:ss");
        format.setTimeZone(TimeZone.getDefault());
        Date d = null;
        try {
            d = format.parse(inputDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return d;
    }

拨打

modifyDateLayout("Fri, 27-Sep-2013 08:29:59 GMT");

答案 1 :(得分:1)

格式应为EEE, dd-MMM-yyyy hh:mm:ss ZZZ

答案 2 :(得分:1)

试试这个

DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
System.out.println(format.format(now));
String s = format.format(now);
String result = s.substring(0, 26) + ":" + s.substring(27);
System.out.println("Result: "+result);

答案 3 :(得分:1)

这应该是你的格式。 EEE, dd-MMM-yyyy hh:mm:ss ZZZ

这是working output

答案 4 :(得分:1)

试试这个......

private Date modifyDateLayout(String inputDate) {
    DateFormat format = new SimpleDateFormat("EEE, dd-MMM-yyyy HH:mm:ss z");
    format.setTimeZone(TimeZone.getTimeZone("GMT"));
    Date d = null;
    try {
        d = format.parse(inputDate);
    } catch (ParseException e) {
        e.printStackTrace(); // To change body of catch statement use File |
                                // Settings | File Templates.
    }
    return d;
}

答案 5 :(得分:1)

这很有效。只需根据GMT设定时间,它就会给你当地时间。

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;


public class Time {
    private Date modifyDateLayout(String inputDate) {
        DateFormat format = new SimpleDateFormat ("EEE, dd-MMM-yyyy hh:mm:ss zzz");
        format.setTimeZone (TimeZone.getTimeZone ("GMT"));

        Date d = null;
        try {
        d = format.parse(inputDate);
        System.out.println(d);
        } catch (ParseException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return d;
    }
    public static void main(String[] args) {
        //new Time().modifyDateLayout("Fri, 27-Sep-2013 08:29:59 GMT");
        new Time().modifyDateLayout("Fri, 17-Apr-2015 15:45:59 GMT");
    }
}