日期正則java
㈠ java 匹配時間的正則怎樣寫
4位時間如 00:00
([0-1]\d|2[0-3]):[0-5]\d
單一字元串 加^和$
如果是這樣的時間也匹配 0:30, 8:9用下面這個
\b([0-1]?\d|2[0-3]):([0-5]?\d)\b
單一字元串用這個
^([0-1]?\d|2[0-3]):([0-5]?\d)$
㈡ java 正則表達式驗證日期格式 yyyy-MM-dd,如何寫
我前不久剛好整了這段代碼,你仔細看一下:
閏年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))
平年:((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))
上面代碼驗證的格式是yyyyMMdd,看懂了這個,你那個也就清楚了
㈢ java 正則表達式 字元串中提取日期 例如:某一節目第20140502期
packagep1;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
publicclassRunnableTicket
{
publicstaticvoidmain(String[]args)
{
Stringreg="[1-9]\d{3}(((0[13578]|1[02])([0-2]\d|3[01]))|((0[469]|11)([0-2]\d|30))|(02([01]\d|2[0-8])))";
Stringstr="某一節目第20140502期";
Patternpattern=Pattern.compile(reg);
Matchermatcher=pattern.matcher(str);
while(matcher.find())
{
System.out.println(matcher.group());
}
}
}
㈣ 如和用java 寫一個 正則表達式 驗證日期的 要精確到毫秒的 2009-03-23-13.53.29.000000
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Test {
public static boolean isDate(String strDate, String sign) {
boolean back = true;
SimpleDateFormat sdf = new SimpleDateFormat(sign);
try {
sdf.parse(strDate);
} catch (ParseException e) {
back = false;
}
return back;
}
public static void main(String[] args) {
String date = "2009-03-23-13.53.29.000000";
String sign = "yyyy-MM-dd-HH.mm.ss.SSSSSS";
System.out.println(Test.isDate(date, sign));
}
}
㈤ java用正則表達式判斷字元串是不是時間
具體代碼如下:
1 public static boolean isValidDate(String str) {
2 boolean convertSuccess=true;
3 // 指定日期格式為四位年/兩位月份/兩位日期,注意yyyy/MM/dd區分大小寫;
4 SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm");
5 try {
6 // 設置lenient為false. 否則SimpleDateFormat會比較寬松地驗證日期,比如2007/02/29會被接受,並轉換成2007/03/01
7 format.setLenient(false);
8 format.parse(str);
9 } catch (ParseException e) {
10 // e.printStackTrace();
11 // 如果throw java.text.ParseException或者NullPointerException,就說明格式不對
12 convertSuccess=false;
13 }
14 return convertSuccess;
㈥ Java裡面效驗日期的正則表達式
publicstaticvoidmain(String[]args)
{
StringcheckValue="20000431112230";
Stringyear=checkValue.substring(0,4);//獲取年份
Stringmonth=checkValue.substring(4,6);//獲取月份
BooleanisLeap=leapYear(Integer.parseInt(year));//判斷閏年
System.out.println(isLeap);
StringBuffereL=newStringBuffer();
StringlongMonth="01030507081012";//31天的月份
Stringfix="([2][0-3]|[0-1][0-9]|[1-9])[0-5][0-9]([0-5][0-9]|[6][0])";
if(isLeap&&month.equals("02")){//針對2月份的情況【閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}elseif(!isLeap&&month.equals("02")){//針對2月份的情況【非閏年】
eL.append("\d{4}([1][0-2]|[0][0-9])([2][0-1]|[1-2][0-8]|[0][1-9]|[1-9])"+fix);
}elseif(longMonth.contains(month)){//31天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}else{//30天月份
eL.append("\d{4}([1][0-2]|[0][0-9])([3][0]|[1-2][0-9]|[0][1-9]|[1-9])"+fix);
}
Patternp=Pattern.compile(eL.toString());
Matcherm=p.matcher(checkValue);
booleanflag=m.matches();
if(flag)
{
System.out.println("格式正確");
}
else
{
System.out.println("格式錯誤");
}
}
publicstaticbooleanleapYear(intyear){
BooleanisLeap=false;
if(((year%100==0)&&(year%400==0))
||((year%100!=0)&&(year%4==0)))
isLeap=true;
returnisLeap;
}
㈦ 用JAVA正則表達式怎麼匹配年月日(比如要求輸入為出生日期)
建議使用 ^(\d{2}|\d{4})[-/](0?[1-9]|1[12])[-/](0?[1-9]|[12]\d|3[01])$ 來匹配(日期不一定有效),然後嘗試轉換成日期.如果要嚴謹點可以用^(\d{2}|\d{4})[-/](((0?[13578]|10|12)[-/](0?[1-9]|[12]\d|3[01]))|((0?[469]|11)[-/](0?[1-9]|[12]\d|30))|(0?2[-/](0?[1-9]|[12]\d)))$但是這里還是有個問題:將所有年份的2月29日都當作有效日期