Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每月至1月的日期_Java_Android_Datetime_Simpledateformat - Fatal编程技术网

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