Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 SimpleDataFormat解析时忽略月份_Java_Simpledateformat - Fatal编程技术网

Java SimpleDataFormat解析时忽略月份

Java SimpleDataFormat解析时忽略月份,java,simpledateformat,Java,Simpledateformat,下面的代码将解析后的日期设置为“Wed Jan 13 00:00:00 EST 2010” 而不是“Wed Jun 13 00:00:00 EST 2010”。非常感谢您的任何想法 SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss"); String str = "2010-06-13T00:00:00"; Date date = sf.parse(str); System.o

下面的代码将解析后的日期设置为“Wed Jan 13 00:00:00 EST 2010” 而不是“Wed Jun 13 00:00:00 EST 2010”。非常感谢您的任何想法

    SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");

    String str = "2010-06-13T00:00:00";

    Date date = sf.parse(str);

    System.out.println(" Date " + date.toString());
尝试:


MM
表示月份<代码>毫米表示分钟。有关支持的日期和时间模式的更多详细信息,请参阅文档。

问题在于您使用“mm”作为月份,“mm”表示分钟。 以下是所有可用的日期格式,请阅读更多文档


日期为2016年7月6日的示例

SimpleDateFormat sdf= new SimpleDateFormat("dd MM yyyy");
可以在这些格式之间使用逗号、句号、斜杠或连字符

 Ex: dd-mm-yyyy, it will display like(06-07-2016)
 dd/mm/yyyy,it will display like(06/07/2016)
 dd.mm.yyyy,it will display like(06.07.2016)
 dd,mm,yyyy ,it will display like(06,07,2016)

 MM   - will display number of the Month.
 MMM  - will display Month Three character only(Ex: Jul)
 MMMM - will display full month(Ex: July)

 yyyy - will display full year(2016) 
 yy   - will display last two digits(16)

 hh - will display hours
 mm -will display minutes
 ss - will display seconds
 a - will display AM or PM

 Ex: if time is 12:09:10 PM means (hh:mm:ss a)

 EEE- will display short week name(Ex: Wed)
 EEEE- will display full week name(Ex: Wednesday)
现代答案:

    String str = "2010-06-13T00:00:00";
    LocalDateTime dateTime = LocalDateTime.parse(str);
    System.out.println("Date-time " + dateTime);
输出:

日期时间2010-06-13T00:00

我正在使用并推荐
java.time
,这是一种现代的java日期和时间API。我们甚至不需要显式格式化程序进行解析。这是因为您的字符串采用ISO 8601格式,
java.time
类默认解析的国际标准<代码>java.time于2014年问世

2010年,当我们提出这个问题时,
SimpleDateFormat
是我们用来解析日期和时间的,但幸运的是,这个类现在被认为已经过时很久了,因为它也很麻烦

如果您的字符串只包含一个日期而不包含一天中的时间,请以完全相同的方式使用
LocalDate
类(这是在中询问的)

2018-05-23


链接:解释如何使用
java.time

请注意,您有两个“mm”,一个月一个分钟。仅供参考,非常麻烦的旧日期时间类,例如,
java.util.Calendar
java.text.SimpleDateFormat
现在被内置于java 8和更高版本中的类所取代。看见请参阅使用
LocalDate
。欢迎使用SO,@manu!听起来你认为这个答案是正确的。您可以通过单击此注释上方和左侧复选标记的大纲将其标记为已接受答案。这有助于其他人看到问题已被回答,给回答者+15个代表,给你+2个代表!仅供参考,非常麻烦的旧日期时间类,如,
java.util.Calendar
java.text.SimpleDateFormat
现在被内置在Java8和更高版本中的类所取代。看见请参见使用
LocalDate
 Ex: dd-mm-yyyy, it will display like(06-07-2016)
 dd/mm/yyyy,it will display like(06/07/2016)
 dd.mm.yyyy,it will display like(06.07.2016)
 dd,mm,yyyy ,it will display like(06,07,2016)

 MM   - will display number of the Month.
 MMM  - will display Month Three character only(Ex: Jul)
 MMMM - will display full month(Ex: July)

 yyyy - will display full year(2016) 
 yy   - will display last two digits(16)

 hh - will display hours
 mm -will display minutes
 ss - will display seconds
 a - will display AM or PM

 Ex: if time is 12:09:10 PM means (hh:mm:ss a)

 EEE- will display short week name(Ex: Wed)
 EEEE- will display full week name(Ex: Wednesday)
    String str = "2010-06-13T00:00:00";
    LocalDateTime dateTime = LocalDateTime.parse(str);
    System.out.println("Date-time " + dateTime);
    String dateStr = "2018-05-23";
    LocalDate date2 = LocalDate.parse(dateStr);
    System.out.println(date2);