我已经编写了以下代码来将Date解析为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();
}
问题是,它将所有Months转换为January
。它将此日期2016-07-21T16:01:57
转换为21 January, 2016
。
请指导我在这里做错了什么。
试试这个:
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;
您必须将解析器模式与服务器发送的模式相匹配:
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); // this is fine now.
使用下面的第一个格式化程序
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");