Java 每月至1月的日期
我已经编写了以下代码,将日期解析为这种格式Java 每月至1月的日期,java,android,datetime,simpledateformat,Java,Android,Datetime,Simpledateformat,我已经编写了以下代码,将日期解析为这种格式2016年7月25日。这就是我为实现这一目标所做的 Date _date; String datePattern = "dd MMMM, yyyy"; DateFormat formatter = new SimpleDateFormat("yyyy-MM-DD"); SimpleDateFormat format = new SimpleDateFormat(datePattern); String parseDate;
2016年7月25日
。这就是我为实现这一目标所做的
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();
}
问题是,它将所有月份转换为一月
它将此日期转换为2016-07-21T16:01:57
2016年1月21日
请告诉我我做错了什么。试试这个:
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");
yyyy MM DD是错误的,DD是一年中的一天。它应该是yyy-MM-dd