Java Regd无法分析日期:

Java Regd无法分析日期:,java,simpledateformat,Java,Simpledateformat,我试图将RC3339时间格式转换为MM dd yyyy hh:MM a,但它在sampleDate时显示空值 timestamp = rcobj.getString("timestamp"); SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss+SSSZ", Locale.US); Date sampleDate = sdf.parse(timestamp, new ParsePosition(0));

我试图将RC3339时间格式转换为MM dd yyyy hh:MM a,但它在sampleDate时显示空值

timestamp = rcobj.getString("timestamp");
SimpleDateFormat sdf = new SimpleDateFormat(
    "yyyy-MM-dd'T'HH:mm:ss+SSSZ", Locale.US);
Date sampleDate = sdf.parse(timestamp, new ParsePosition(0));
sdf = new SimpleDateFormat("MM-dd-yyyy hh:mm a", Locale.US);
if (timestamp != null) {
    timestamp = sdf.format(sampleDate);
}

如果
timestamp
是一个无效日期,则抛出一个,因此不是这样


如果
timestamp
null
parse()

我几乎可以保证
rcobj.getString(“timestamp”)
将返回
null



顺便说一句
parse(timestamp,newparseposition(0))
相当于
parse(timestamp)

,那么
timestamp
的值是多少?如果它可能为空,为什么不先检查就解析它?(另外,我假设这是Java,但如果您以这种方式标记它会有所帮助……)时间戳的值如下:2012-01-19T18:23:43+0000。但是现在通过更改SimpleDataFormat中字符串的模式来修复它。我使用的是:yyyy-MM-dd'HH:MM:ss+SSSZ,而不是'HH:MM:ss+SSSZ。当我使用yyyy-MM-dd'T'HH:MM:ss时,它与我的时间戳字符串的偏移模式不匹配。当我更改模式时,它工作正常。这就是谢谢你帮了我。