Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 简单日期格式,解析异常_Java_Date_Datetime_Simpledateformat - Fatal编程技术网

Java 简单日期格式,解析异常

Java 简单日期格式,解析异常,java,date,datetime,simpledateformat,Java,Date,Datetime,Simpledateformat,使用Android Studio 我正在从facebook检索一个日期,它是一个字符串2015-11-21T17:49:49+0000 我希望将其转换为格式为EEE MMM dd HH:mm:ss Z yyyy的日期,但当然我需要首先将其更改为日期对象 为了做到这一点,我尝试将其解析为EEE-MM-dd'T'HH:MM:ssZyyyy,但这会导致我的程序崩溃。ParseException:不可解析日期:2015-11-21T17:49:49+0000偏移量0 可能是日期的T符号吗?或者我使用的格

使用Android Studio

我正在从facebook检索一个日期,它是一个字符串2015-11-21T17:49:49+0000

我希望将其转换为格式为EEE MMM dd HH:mm:ss Z yyyy的日期,但当然我需要首先将其更改为日期对象

为了做到这一点,我尝试将其解析为EEE-MM-dd'T'HH:MM:ssZyyyy,但这会导致我的程序崩溃。ParseException:不可解析日期:2015-11-21T17:49:49+0000偏移量0

可能是日期的T符号吗?或者我使用的格式不正确?

您的输入格式需要yyyy而不是EEE。大概

String in = "2015-11-21T17:49:49+0000";
String fmtIn = "yyyy-MM-dd'T'HH:mm:ssZ";
String fmtOut = "EEE MMM dd HH:mm:ss Z yyyy";
DateFormat sdf = new SimpleDateFormat(fmtIn);
try {
    Date d = sdf.parse(in);
    DateFormat outSDF = new SimpleDateFormat(fmtOut);
    System.out.println(outSDF.format(d));
} catch (ParseException e) {
    e.printStackTrace();
}
因为我在EST,所以输出是

Sat Nov 21 12:49:49 -0500 2015
您的输入格式需要yyyy而不是EEE。大概

String in = "2015-11-21T17:49:49+0000";
String fmtIn = "yyyy-MM-dd'T'HH:mm:ssZ";
String fmtOut = "EEE MMM dd HH:mm:ss Z yyyy";
DateFormat sdf = new SimpleDateFormat(fmtIn);
try {
    Date d = sdf.parse(in);
    DateFormat outSDF = new SimpleDateFormat(fmtOut);
    System.out.println(outSDF.format(d));
} catch (ParseException e) {
    e.printStackTrace();
}
因为我在EST,所以输出是

Sat Nov 21 12:49:49 -0500 2015
您也可以使用Gregorianalendar。虽然它们需要更长的时间来定义,但管理起来更简单

GregorianCalendar calendar = new GregorianCalendar();

int year, month, day, hour, minute, second;

//...parse the data and store year, month, day, hour, minute, and second.
//...
//...

//fill in calendar's data.
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1); //month is offset by one (January == 0)
calendar.set(Calendar.DAY_OF_MONTH, day);
calendar.set(Calendar.HOUR, hour); //No need to edit. 12AM is 0, 1AM is 1, 12PM is 12, etc.
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);

//get time in milliseconds since epoch and create Date object.
Date date = new Date(calendar.getTimeInMillis());
您也可以使用Gregorianalendar。虽然它们需要更长的时间来定义,但管理起来更简单

GregorianCalendar calendar = new GregorianCalendar();

int year, month, day, hour, minute, second;

//...parse the data and store year, month, day, hour, minute, and second.
//...
//...

//fill in calendar's data.
calendar.set(Calendar.YEAR, year);
calendar.set(Calendar.MONTH, month - 1); //month is offset by one (January == 0)
calendar.set(Calendar.DAY_OF_MONTH, day);
calendar.set(Calendar.HOUR, hour); //No need to edit. 12AM is 0, 1AM is 1, 12PM is 12, etc.
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, second);

//get time in milliseconds since epoch and create Date object.
Date date = new Date(calendar.getTimeInMillis());
您可以将其用作外部库。一旦该库位于类路径中,您所要做的就是编写如下内容:

DateTime myDate=新日期时间2015-11-21T17:49:49+0000

然后,您可以将其转换为在myDate上调用toDate方法的日期对象。

您可以将其用作外部库。一旦该库位于类路径中,您所要做的就是编写如下内容:

DateTime myDate=新日期时间2015-11-21T17:49:49+0000


然后,您可以在myDate上将其转换为调用toDate方法的日期对象。

您使用的是什么编程语言?android中的javastudio@Legionar显然不是在9个月前的邮报上,否则我就不会评论了…你在用什么编程语言?android中的javastudio@Legionar显然不是在9个月前的帖子发布时,否则我不会发表评论。。。