正则表达式 日期类型
2013-09-27 14:56
211 查看
package com.commons.business; import java.util.regex.Matcher; import java.util.regex.Pattern; public class VerificaDate { /** * @param 日期验证,验证的格式有:"yyyyMM","yyyyMMdd","yyyyMMdd HH:mm:ss", * "yyyy-MM","yyyy-MM-dd","yyyy-MM-dd HH:mm:ss" * "yyyy.MM","yyyy.MM.dd","yyyy.MM.dd HH:mm:ss" * "yyyy/MM","yyyy/MM/dd","yyyy/MM/dd HH:mm:ss" * "yyyy_MM","yyyy_MM_dd","yyyy_MM_dd HH:mm:ss" * @param sDate * @return false/true */ public static boolean verificationOfDateIsCorrect(String sDate) { if(null == sDate || "".equals(sDate)){ return false; } boolean flag = false; Pattern pattern0 = null; Matcher match0 = null; String datePattern = "" + //第一种情况为月份是大月的有31天。 "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" +//年 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "(10|12|0?[13578])" +//大月 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "((3[01]|[12][0-9]|0?[1-9])?)" +//日(31)要验证年月因此出现0/1次 "([\\s]?)" +//空格 "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?)$)" +//时分秒 "|" +//或 //第二种情况为月份是小月的有30天,不包含2月。 "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" +//年 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "(11|0?[469])" +//小月不含2月 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "(30|[12][0-9]|0?[1-9])" +//日(30) "([\\s]?)" +//空格 "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?)$)" +//时分秒 "|" +//或 //第三种情况为平年月份是2月28天的。 "(^\\d{3}[1-9]|\\d{2}[1-9]\\d{1}|\\d{1}[1-9]\\d{2}|[1-9]\\d{3}" +//年 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "(0?2)" +//平年2月 "([-/\\._]?)" +//时间间隔符(-,/,.,_) "(2[0-8]|1[0-9]|0?[1-9])" +//日(28) "([\\s]?)" +//空格 "((([0-1]?[0-9]|2[0-3]):([0-5]?[0-9]):([0-5]?[0-9]))?)$)" +//时分秒 "|" +//或 //第四种情况为闰年月份是2月29天的。 //可以被4整除但不能被100整除的年份。 //可以被400整除的数亦是能被100整除,因此后两位是00,所以只要保证前两位能被4整除即可。 "(^(((\\d{2})(0[48]|[2468][048]|[13579][26]))|((0[48]|[2468][048]|[13579][26])00))" + "([-/\\._]?)" + "(0?2)" + "([-/\\._]?)" + "(29)" + "([\\s]?)" + "(([0-1]?\\d|2[0-3]):([0-5]?\\d):([0-5]?\\d))?$" +//时分秒 ")";; pattern0 = Pattern.compile(datePattern); match0 = pattern0.matcher(sDate); flag = match0.matches(); return flag; } public static boolean verificationOfIntegerIsCorrect(String sInteger) { if(null == sInteger || "".equals(sInteger)){ return false; } boolean flag = false; String datePattern = "[1-9]{1}[0-9]{0,11}"; Pattern pattern0 = Pattern.compile(datePattern); Matcher match0 = pattern0.matcher(sInteger); flag = match0.matches(); return flag; } public static void main(String[] args){ System.out.println(VerificaDate.verificationOfDateIsCorrect("1948-02-29 12:00:00")); } }
相关文章推荐
- 正则表达式之日期类型(匹配闰年)
- Extjs gridPanel 单元格中日期类型配置
- MySQL:MySQL日期数据类型、MySQL时间类型
- 返回json数据,格式化日期类型去掉时分秒
- Open Xml 写入日期类型
- sql日期时间戳数据类型巩固学习
- oracle trunc 函数处理日期格式,日期类型很有用的几个sql
- 解决JDBC操作数据库日期类型数据时无法精确到秒的问题
- HTML5日期输入类型(date)
- Java 日期时间类型的几个问题总结[转]
- Teradata 日期类型转换(特殊方式)
- HTML5日期输入类型(date)
- 各种日期类型之间的转换
- SQL SERVER 2005中的日期时间类型
- SpringMVC日期类型转换问题三大处理方法归纳
- Java - oracle 日期类型字段的操作
- Sqlite日期类型问题:该字符串未被识别为有效的 DateTime(String not recognized as a valid datetime)
- easyui框架Date日期类型以json形式显示到前台datagrid时,显示为[object Object]
- Oracle 内置数据类型 -- 日期时间
- 导数据时日期格式的问题、将float类型转成字符型的问题