Java为了支持多语言,没有固定的日期格式.你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式.下面的例子供参考.更详细的内容(比如yyyy,MM,dd各代表什么)可以参考javadoc.
public class DateUtil
{
private static final SimpleDateFormat dateFormat = null;
static
// 指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
dateFormat = new SimpleDateFormat("yyyy/MM/dd");
dateFormat.setLenient(false);
}
public static boolean isValidDate(String s)
try
dateFormat.parse(s);
return true;
catch (Exception e)
// 如果throw java.text.ParseException或者NullPointerException,就说明格式不对
return false;
// 下面这个方法则可以将一个日期按照你指定的格式输出
public static String formatDate(Date d)
return dateFormat.format(d);
import java.util.*;
import java.util.regex.*;
import java.text.*;
/** 这个是按照楼主的描述使用通过判断字符验证时间合法性 */
//测试代码 begin
public static void main(String[] s){
//以下是测试代码
private static void test(String stringdate){
System.out.println("输入[" + stringdate + "]是否合法:" + validate(stringdate));
//测试代码 end
//==
/** 判断主方法 */
public static boolean validate(String dateString){
//使用正则表达式 测试 字符 符合 dddd-dd-dd 的格式(d表示数字)
Matcher m = p.matcher(dateString);
if(!m.matches()){return false;}
//得到年月日
String[] array = dateString.split("-");
int year = Integer.valueOf(array[0]);
int month = Integer.valueOf(array[1]);
if(isLeapYear(year)){
}else{
int monthLength = monthLengths[month];
if(day1 || daymonthLength){
/** 是否是闰年 */
private static boolean isLeapYear(int year){
java.text.DateFormat dateFormat= new java.text.SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
java.util.Date timeDate = dateFormat.parse(dateString);
//转换为util类型
public
boolean
isValidDate(
int
year,
mon,
day,
short
year_min,short
year_max,
StringBuffer
msg)
if(yearyear_min
||
yearyear_max)
msg.append("年份必须在("+
year_min+"~"+year_max+
")之间,输入值("+year+")无效\n");
return
false;
}else
if(mon1
if(day1
if(isLeapYear(year)
true;
//闰年
isLeapYear(int
year){
year0!=0)||
以上就是土嘎嘎小编为大家整理的java合法日期代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!