java. text. Strange behavior in simpledateformat, expecting yyyymmdd to give yyyy MM DD
•
Java
When using simpledateformat to parse strings to dates, I encountered a very strange behavior Consider the following unit tests:
@Test public void testParse() throws ParseException { DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); String dateStr = "2012-12-21"; Date parsedDate = dateFormat.parse(dateStr); Calendar date = Calendar.getInstance(); date.setTime(parsedDate); Assert.assertEquals(2012,date.get(Calendar.YEAR)); Assert.assertEquals(11,date.get(Calendar.MONTH)); // yeah,Calendar sucks Assert.assertEquals(21,date.get(Calendar.DAY_OF_MONTH)); }
Solution
Then the input will be divided into three components: year, month and day. You will get month = - 12 and day = - 21 (see correction below) Try to parse 2012 / 12 / 21, you will get an exception:) @ h_ 419_ 4 @ editor: excerpt from Javadoc:
year = "2012" month = "-1" day = "2-"
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码