我试图将Date
字符串转换为日期,但是SimpleDateFormat.parse
在添加时间时不会返回任何内容。SimpleDateFormat解析不会返回任何时间
这是日期字符串:
String dateInString = news.getDate();
Log.e(TAG, "Date in String: " + dateInString);
Date in String: 2015-08-19T06:21:59+01:00 //Result
当我这样做:
DateFormat format
= new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
Date date;
try {
date = format.parse(dateInString);
Log.e(TAG, "Formatted date: " + date);
} catch (ParseException e) {
e.printStackTrace();
}
我得到的结果是:Formatted date: Wed Aug 19 01:00:00 GMT+01:00 2015
如果我的时间增加的SimpleDateFormat:
DateFormat format
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
代码甚至没有通过尝试,也没有抛出任何异常。没有任何打印。
我都试过,没有运气加上TimeZone
:
TimeZone timeZone = TimeZone.getTimeZone("UTC+01"); //also tried GMT+1:00, UTC+1:00 and UTC
DateFormat format
= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
format.setTimeZone(timeZone);
try {
date = format.parse(dateInString);
Log.e(TAG, "Formatted date: " + date);
} catch (ParseException e) {
e.printStackTrace();
}
任何指针?
'yyyy-MM-dd'T'HH:mm:ssXXX'模式应该适用于您的格式。并且设置时区可以省略,因为它在日期/时间字符串中定义。 –
@SashaSalauyou我使用你的建议得到一个'java.lang.IllegalArgumentException:未知模式字符'X''。安迪的工作,但我不知道他为什么删除他的评论 –
'X'是自Java 1.7以来的可用! –