将字符串转换为日期并计算日期差异

时间:2017-07-27 03:17:25

标签: java android

如何将此String转换为Date: 字符串时间=“2017-07-27T02:52:36.05768Z”;

我的代码无效

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try{
 date = dateFormat.parse(time);
} catch (ParseException e) {
 e.printStackTrace();
 Logi(TAG, e.getMessage());
}

我收到错误:

error: Unparseable date: "2017-07-27T02:52:36.05768Z" (at offset 10)

请注意,我在尝试之前尝试研究,但没有任何效果。谢谢 [已解决]错误的日期字符串格式。该字符串应与日期模式匹配

8 个答案:

答案 0 :(得分:1)

如Ben P.所述,您应该使用格式化程序,如:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSZ");
yyyy-年份 MM-月份 dd-为白天 HH - 持续数小时
毫米 - 分钟
ss - 秒数 SSSSS - 毫秒数

有关示例,请参阅http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:0)

您的模式与您的输入不符。你有一个空间,你的输入有一个“T”,你没有任何东西可以匹配句号,纳秒或最后的“Z”。

答案 2 :(得分:0)

您必须将时间更改为

字符串时间=" 2017-07-27 02:52:36.05768Z "

前:

public static String ViewEAEA(){
    String s = "";
    String time = "2017-07-27 02:52:36.05768Z";
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    try{
    Date date = dateFormat.parse(time);
    s = dateFormat.format(date);
    System.out.println(s);
    } catch (Exception e) {
     e.printStackTrace();
     }
    return s;
}

输出:

2017-07-27 02:52:36

答案 3 :(得分:0)

此日期采用W3C XML Schema日期/时间格式。您可以使用javax.xml.datatype包解析它:

    XMLGregorianCalendar c = DatatypeFactory.newInstance().newXMLGregorianCalendar("2017-07-27T02:52:36.05768Z");
    Date date = c.toGregorianCalendar().getTime();

答案 4 :(得分:0)

使用为您的字符串定制的此方法:

public Date stringToDate(String time) throws ParseException {
    time = time.replace('T', ' ');
    return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time);
}

或者您可以修改格式化程序:

public Date stringToDate(String time) throws ParseException {
    return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(time);
}

答案 5 :(得分:0)

显然,它说偏移(10)你有不能改变为日期格式的字符。如果您仔细查看索引10,则表示“To”,而文本不是日期时间格式的一部分。因此,拆分并合并日期字符串,以便从该字符串中删除“To”文本。

答案 6 :(得分:0)

日期和时间格式由日期和时间模式字符串指定。 SimpleDateFormat构造函数中的模式与对应的不完美 到您的数据时间字符串。我们试试这段代码。

String time = "2017-07-27T02:52:36.05768Z";
SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
try {
Date date = parser.parse(time);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = formatter.format(date);
System.out.println("The date is " + formattedDate);
} catch (ParseException e) {
e.printStackTrace();
}

我希望它会对你有所帮助。

答案 7 :(得分:0)

使用$pa_color = get_post_meta($product->id, 'pa_color', true); 并尝试。