2017-01-02T01:41:24Z
是我的实际日期格式,我想以yyyy-MM-dd hh:mma
格式转换此日期。
请参阅我目前尝试的以下代码,
String newsDate = "2017-01-02T01:41:24Z";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mma");
Date date = null;
try
{
date = sdf.parse(newsDate);
}
catch (ParseException e)
{
e.printStackTrace();
}
但在date = sdf.parse(newsDate);
行,我收到以下错误:
"无法解析日期:" 2017-01-02T01:41:24Z" (在抵消10)"。
请指导我,哪里可能出错?
答案 0 :(得分:4)
因为您使用的是不正确的日期格式。
更改此
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mma");
到这个
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
答案 1 :(得分:1)
试试这个:
String newsDate = "2017-01-02T01:41:24Z";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mma");
try {
texview.setText(sdf1.format(sdf.parse(newsDate)));
} catch (ParseException e) {
e.printStackTrace();
System.out.println("bad pattern");
}
答案 2 :(得分:1)
这对我来说很有效。
Route::post('/post/homepage', 'AdminController@HomePage');
答案 3 :(得分:0)
关于时区/偏移的其他答案是错误的 - 解释。尾随" Z"表示UTC + 00:00,不得解释为文字。 documentation of Android定义了可以处理这种输入的合适模式符号X.如果你不关心这个细节那么你就不会得到例外而是错误的数据(更糟糕的是)。
所以包括小时部分修复的最终解决方案如下:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
注意:如果您有没有冒号的偏移量,请使用XX而不是XXX。