导航:首页 > 编程语言 > java日期是否合法

java日期是否合法

发布时间:2024-06-17 01:30:22

java 判断一个字符串是不是一个合法的日期格式

(Stringstr){
booleanconvertSuccess=true;
//指定日期格式为四位年/两位月份/两位日期,注意yyyy/MM/dd区分大小写;
SimpleDateFormatformat=newSimpleDateFormat("yyyy/MM/ddHH:mm");
try{
//设置lenient为false.否则SimpleDateFormat会比较宽松地验证日期,比如2007/02/29会被接受,并转换成2007/03/01
format.setLenient(false);
format.parse(str);
}catch(ParseExceptione){
//e.printStackTrace();
//如果throwjava.text.ParseException或者NullPointerException,就说明格式不对
convertSuccess=false;
}
returnconvertSuccess;
}

② java涓濡备綍鍒ゆ柇杈揿叆镄勬棩链熸槸钖﹀悎娉曪纻

import java.util.*;
import java.util.regex.*;
import java.text.*;

/** 杩欎釜鏄鎸夌収妤间富镄勬弿杩颁娇鐢ㄩ氲繃鍒ゆ柇瀛楃﹂獙璇佹椂闂村悎娉曟 */
public class DateUtils2 {

//娴嬭瘯浠g爜 begin
public static void main(String[] s){
//浠ヤ笅鏄娴嬭瘯浠g爜
test("20099-1-1");
test("20099-100-1");
test("20099-1-100");
test("2009-1-1");
test("2009-1-31");
test("2009-2-28");
test("2009-2-29");
test("2008-2-29");
}

private static void test(String stringdate){
System.out.println("杈揿叆[" + stringdate + "]鏄钖﹀悎娉:" + validate(stringdate));
}
//娴嬭瘯浠g爜 end

//==

/** 鍒ゆ柇涓绘柟娉 */
public static boolean validate(String dateString){
//浣跨敤姝e垯琛ㄨ揪寮 娴嬭瘯 瀛楃 绗﹀悎 dddd-dd-dd 镄勬牸寮(d琛ㄧず鏁板瓧)
Pattern p = Pattern.compile("\\d{4}+[-]\\d{1,2}+[-]\\d{1,2}+");
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]);
int day = Integer.valueOf(array[2]);

if(month<1 || month>12){ return false;}
int[] monthLengths = new int[]{0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
if(isLeapYear(year)){
monthLengths[2] = 29;
}else{
monthLengths[2] = 28;
}
int monthLength = monthLengths[month];
if(day<1 || day>monthLength){
return false;
}
return true;
}

/** 鏄钖︽槸闂板勾 */
private static boolean isLeapYear(int year){
return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ;
}
}

镄 鍒氩ソ鍜屼綘镄勯梾棰树竴镙凤綖锝烇綖锝烇綖锝烇綖

③ java如何对生日(yyyymmdd)进行合法性判断

修改你说的存在的bug
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestBirthday {
public static void main(String[] args){
String birthday="20130132";
System.out.println(isBirthday(birthday));
}
/*
* @param : birthday 传入一个日期格式的字符串
* 支持 yyyy-MM-dd ,yyyyMMdd MM-dd-yyyy ,yyyy年MM月dd日
* @isBirthday 判断输入的字符串是否是合法的生日 生日不能大于当前日期
* */
public static boolean isBirthday(String birthday){
//定义需要过滤的条件,可以将你期望的日期格式添加到数组中
String[] formats={
"yyyy-MM-dd",
"yyyyMMdd",
"MM-dd-yyyy",
"yyyy年MM月dd日"
};
/*
* 设置格式过滤器
*/
//记录传入的日期字符串,转换成日期类型
Date birth=null;
//判断格式是否正确,默认值为false
boolean isRight=false;
for(String f:formats){
try {
birth =new SimpleDateFormat(f).parse(birthday);
//校验日期转换后是和传入的值不相同,说明日期传入有问题
//修正楼上提到的bug
if(!new SimpleDateFormat(f).format(birth).equals(birthday)){
return false;
}
isRight=true;
break;
} catch (ParseException e) {}
}
if(isRight){
//获取当前日期的毫秒数
long now =new Date().getTime();
//获取生日的毫秒数
long birthTime = birth.getTime();
//如果当前时间小于生日,生日不合法。反之合法
return birthTime<=now;
}else{
//输入的参数类型不是日期类型,或者类型和过滤中设置的类型不匹配
return false;
}
}
}

④ JAVA如何判断一个字符串是不是一个合法的日期格式

Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。

下面的例子供参考。更详细的内容可以参考javadoc。

publicclassDateUtil
{
=null;
static
{
dateFormat=newSimpleDateFormat("yyyy/MM/dd");
dateFormat.setLenient(false);
}

(Strings)
{
try
{
dateFormat.parse(s);
returntrue;
}
catch(Exceptione)
{
returnfalse;
}
}

publicstaticStringformatDate(Dated)
{
returndateFormat.format(d);
}

}
阅读全文

与java日期是否合法相关的资料

热点内容
安卓解压软件有哪些 浏览:51
午马影院 浏览:275
电脑文件夹为什么是一个圆形 浏览:113
程序员都是怎么样在letcode刷题的 浏览:672
程序员用的猫的软件叫啥 浏览:197
福昕pdf拆分 浏览:890
android获取存储卡 浏览:349
安卓机一直卡怎么办 浏览:782
榆社电影院放映表 浏览:130
程序员增肥 浏览:18
13排imax坐第几排最好 浏览:568
天津单片机培训 浏览:82
小女孩功夫特别厉害电影 浏览:963
d3jspython 浏览:132
python开源前端查询数据库 浏览:566
如何用数轴进行编译 浏览:29
logo控制器加密 浏览:951
图示对称加密 浏览:817
在线播放最新网址 浏览:103
phpcurl验证码人肉 浏览:680