我编写了以下代码来将日期解析为此格式25 July, 2016
。这就是我为实现这一目标所做的工作。
Date _date;
String datePattern = "dd MMMM, yyyy";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD");
SimpleDateFormat format = new SimpleDateFormat(datePattern);
String parseDate;
try {
_date= formatter.parse(date); //date Value is coming from serverin this format = 2016-07-21T16:01:57
parseDate = format.format(_date);
} catch (ParseException e) {
e.printStackTrace();
}
问题在于,它将所有月份转换为January
它将此日期转换为2016-07-21T16:01:57
21 January, 2016
。
请指导我在这里做错了什么。
答案 0 :(得分:4)
试试这个:
DateFormat userDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); //time format from server
DateFormat dateFormatNeeded = new SimpleDateFormat("yyyy-MM-dd"); // time format needed
Date newDate = null;
try {
newDate = userDateFormat.parse(date); // this parses server date format
} catch (ParseException e) {
e.printStackTrace();
}
//this converts to required date format
String convertedDate = dateFormatNeeded.format(newDate);
return convertedDate;
答案 1 :(得分:4)
您必须将解析器模式与服务器发送的模式匹配:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // this is fine now.
答案 2 :(得分:3)
以下用于第一个格式化程序
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");