例如:
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DataSample { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat(); sdf.applyPattern("MM/dd/yyyy") ; try { Date d = sdf.parse("01/17/2013") ; System.out.println(d) ; } catch (ParseException e) { e.printStackTrace(); } } }會得到
Thu Jan 17 00:00:00 CST 2013這是再自然不過了。
但是如果你不小心給錯格式,那會怎樣? 例如 MM/dd/yyyy 給成了 yyyy/MM/dd , 你猜會怎樣?
答案會 beyond imagination 。直覺應該會出錯,但不會,而且會有一個日期跑出來!!!
Tue Sep 01 00:00:00 CST 184哪怎麼辦?
在 DateFormat 有一個 method , 可以解決此問題。 setLenient
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class DataSample { public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat(); sdf.applyPattern("MM/dd/yyyy") ; sdf.setLenient(false); try { Date d = sdf.parse("2013/01/17") ; System.out.println(d) ; } catch (ParseException e) { e.printStackTrace(); } } }會得到
java.text.ParseException: Unparseable date: "2013/01/17" at java.text.DateFormat.parse(DateFormat.java:357) at DataSample.main(DataSample.java:13)
沒有留言:
張貼留言