tôi có mã này:Tại sao SimpleDateFormat ("MM/dd/yyyy") phân tích ngày thành 10/20/20128?
DateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
dateFormat.setLenient(false);
Date date = dateFormat.parse("10/20/20128");
và tôi mong chờ cuộc gọi dateFormat.parse để ném ParseException kể từ năm tôi cung cấp là 5 ký tự thay vì 4 như trong các định dạng tôi xác định. Nhưng đối với một số lý do ngay cả với các thiết lập khoan dung sai cuộc gọi này trả về một đối tượng ngày của 10/20/20128.
Tại sao lại như vậy? Nó không có ý nghĩa với tôi. Có một cài đặt nào khác để làm cho nó trở nên nghiêm ngặt hơn không?
Nếu nó phân tích cú pháp thành 4 chữ số thay vì 5, thì đó không phải là năm chính xác. –
Tôi tin rằng nếu bạn đang lo lắng về việc làm cho nó 4 trong đầu vào người dùng hoặc một cái gì đó là typo'd bạn sẽ phải kiểm tra xem trước khi thiết lập giá trị ngày của bạn. – sealz
Tôi không muốn nó phân tích nó thành 4 chữ số, tôi muốn nó không thành công (cho tôi một ngoại lệ) vì giá trị tôi cung cấp không khớp với định dạng ngày chính xác. – goe