我有以下代码:
import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import org.junit.Test;
public class DateCalendarTest {
@Test
public void test1() {
private final DateFormat df1 = new SimpleDateFormat("MM/dd/yyyy");
String batchdt = "2015/09/23";
System.out.println("Date & Calendar Test: " + batchdt);
Calendar cal = Calendar.getInstance();
Date date1 = df1.parse(batchdt);
cal.setTime(date1);
System.out.println("Date & Calendar Test: " + cal.getTime());
}
}
输出:
Date Calendar Test: 2015/09/23
Date Calendar Test: Mon Nov 09 00:00:00 EST 190
有人可以解释为什么这样做会这样吗?
答案 0 :(得分:1)
您的预期数据与SimpleDateFormat
中指定的格式不符。但是,默认情况下,它解析数据的方式是 lenient 。例如,9月31日将被解释为10月1日。
在这里,它被解释为第23年的第2,015个月的第9天.2015个月是167年,11个月,当加入到第23年时产生190年。在这种情况下,它非常宽松。
输出格式是直接打印Date
时的预期结果。