2

我有这样的日期字符串值:Fri, 27-Sep-2013 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 我哪里错了?谢谢您的帮助

4

6 回答 6

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");
于 2013-09-27T09:21:48.840 回答
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;
}
于 2013-09-27T08:58:40.747 回答
1

这是有效的。只需根据格林威治标准时间设置您的时间,它就会为您提供当地时间。

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");
    }
}
于 2015-04-17T15:46:58.713 回答
1

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

这是工作输出

于 2013-09-27T08:46:42.450 回答
1

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

于 2013-09-27T08:33:15.553 回答
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);
于 2013-09-27T08:42:45.000 回答