Tôi đang sử dụng java.text.SimpleDateFormat
để phân tích các chuỗi của biểu mẫu "yyyyMMdd"
.Làm cho SimpleDateFormat.parse() thất bại vào các ngày không hợp lệ (ví dụ: tháng lớn hơn 12)
Nếu tôi cố gắng phân tích chuỗi bằng một tháng lớn hơn 12, thay vì thất bại, nó sẽ chuyển sang năm tiếp theo. Full Runnable repro:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class ParseDateTest {
public static void main(String[] args) throws ParseException {
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
Date result = format.parse("20091504"); // <- should not be a valid date!
System.out.println(result); // prints Thu Mar 04 00:00:00 CST 2010
}
}
Tôi thà có một ParseException
ném.
Có cách nào không hacky buộc buộc ngoại lệ xảy ra không ?. Ý tôi là, tôi không muốn kiểm tra bằng tay nếu tháng đó lớn hơn 12. Đó là loại vô lý.
Cảm ơn mọi đề xuất.
LƯU Ý: Tôi đã biết về Thời gian Joda, nhưng tôi cần điều này được thực hiện trong JDK thuần túy mà không có thư viện bên ngoài.
Thanks a lot. Điều đó đã làm các trick. Tuyệt vời như thế nào đặt câu hỏi ở đây cho kết quả nhanh hơn so với tìm kiếm trên google (hoặc tôi suck lúc tìm kiếm :). –
+1 cho một lớp lót. –
stackoverflow nên cho phép người dùng cung cấp cho hơn 1 điểm để trả lời và đây là một trong những câu trả lời. Tôi đã làm một số mẫu phù hợp vô lý trước khi phân tích cú pháp với 'SimpleDateFormat'. Cảm ơn rất nhiều. –