Để kiểm tra tính hợp lệ của dữ liệu đầu vào là ngày tháng một cách chuẩn nhất bạn hãy sử dụng lớp SimpleDateFormat trong Java.
DateValidatorUseSimpleDateFormat.java
/**
* @(#)DateValidatorUseSimpleDateFormat.java
*
* DateValidatorUseSimpleDateFormat application
*
* @author developer.bnson@gmail.com
* @web vnlives.net
* @version 1.00 2014/4/12
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateValidatorUseSimpleDateFormat
{
public static void main(String[] args)
{
String dateFormat = "dd-MM-yyyy";
String date_01 = "20-11-2014";
String date_02 = "30-04-2014";
String date_03 = "";
String date_04 = "31-31-2014";
String date_05 = "31-02-2014";
System.out.println("Date " + date_01 + ": " + isValidDate(date_01, dateFormat));
System.out.println("Date " + date_02 + ": " + isValidDate(date_02, dateFormat));
System.out.println("Date " + date_03 + ": " + isValidDate(date_03, dateFormat));
System.out.println("Date " + date_04 + ": " + isValidDate(date_04, dateFormat));
System.out.println("Date " + date_05 + ": " + isValidDate(date_05, dateFormat));
}
public static boolean isValidDate(String dateToValidate, String dateFormat)
{
// Where the date is blank,
//it will be valid, so you need to handle it.
// Trường hợp ngày tháng là trống thì nó sẽ là hợp lệ,
// vì vậy cần phải xử lý nó.
if(dateToValidate == null)
{
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
// Thông thường dữ liệu đầu vào nếu không hợp lệ,
// Java Date sẽ tự đông chuyển đổi lại cho hợp lệ,
// Vì vây ta cần tắt chức năng này đi để dữ liệu được kiểm tra đúng đắn.
// Specify whether or not date/time parsing is to be lenient. With lenient parsing,
// the parser may use heuristics to interpret inputs
// that do not precisely match this object's format. With strict parsing,
// inputs must match this object's format.
sdf.setLenient(false);
try
{
//If not valid, it will to throw ParseException.
//Trường hợp không hợp lệ, nó sẽ chuyển sang xử lý ngoại lệ.
Date date = sdf.parse(dateToValidate);
//System.out.println(date);
}
catch (ParseException e)
{
//e.printStackTrace();
return false;
}
return true;
}
}
* @(#)DateValidatorUseSimpleDateFormat.java
*
* DateValidatorUseSimpleDateFormat application
*
* @author developer.bnson@gmail.com
* @web vnlives.net
* @version 1.00 2014/4/12
*/
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateValidatorUseSimpleDateFormat
{
public static void main(String[] args)
{
String dateFormat = "dd-MM-yyyy";
String date_01 = "20-11-2014";
String date_02 = "30-04-2014";
String date_03 = "";
String date_04 = "31-31-2014";
String date_05 = "31-02-2014";
System.out.println("Date " + date_01 + ": " + isValidDate(date_01, dateFormat));
System.out.println("Date " + date_02 + ": " + isValidDate(date_02, dateFormat));
System.out.println("Date " + date_03 + ": " + isValidDate(date_03, dateFormat));
System.out.println("Date " + date_04 + ": " + isValidDate(date_04, dateFormat));
System.out.println("Date " + date_05 + ": " + isValidDate(date_05, dateFormat));
}
public static boolean isValidDate(String dateToValidate, String dateFormat)
{
// Where the date is blank,
//it will be valid, so you need to handle it.
// Trường hợp ngày tháng là trống thì nó sẽ là hợp lệ,
// vì vậy cần phải xử lý nó.
if(dateToValidate == null)
{
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
// Thông thường dữ liệu đầu vào nếu không hợp lệ,
// Java Date sẽ tự đông chuyển đổi lại cho hợp lệ,
// Vì vây ta cần tắt chức năng này đi để dữ liệu được kiểm tra đúng đắn.
// Specify whether or not date/time parsing is to be lenient. With lenient parsing,
// the parser may use heuristics to interpret inputs
// that do not precisely match this object's format. With strict parsing,
// inputs must match this object's format.
sdf.setLenient(false);
try
{
//If not valid, it will to throw ParseException.
//Trường hợp không hợp lệ, nó sẽ chuyển sang xử lý ngoại lệ.
Date date = sdf.parse(dateToValidate);
//System.out.println(date);
}
catch (ParseException e)
{
//e.printStackTrace();
return false;
}
return true;
}
}
Kết quả - Result
No comments:
Post a Comment