我一直在拟订一些现行法典,因为我的系统没有进行单位测试,而没有在同事系统中进行测试。 根本原因是,简单化格式在规定时间应予平准时 throw然。 我制造了一个单元测试,显示我系统无法使用的守则:
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
import junit.framework.TestCase;
public class FormatsTest extends TestCase {
public void testParse() throws ParseException {
DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss.SSS Z");
formatter.setTimeZone(TimeZone.getDefault());
formatter.setLenient(false);
formatter.parse(formatter.format(new Date()));
}
}
这一试验使我的系统陷入瘫痪,但在其他系统成功运行。
java.text.ParseException: Unparseable date: "20100603100243.118 -0600"
at java.text.DateFormat.parse(DateFormat.java:352)
at FormatsTest.testParse(FormatsTest.java:16)
我发现,我可以<代码>setLenient(true),测试将取得成功。 <代码>Lenient(false)是生产法典中所使用的标准,因此我不想改动。