自己想的一个java日期验证,不用正则表达式
可以验证多种format格式的日期
这个在我博客里面的验证类中有。有需要的朋友可以去下载。
方法:
private static final String DATE_DEFAULT_FORMAT = "yyyyMMdd";
/**
* string is date
*
* @author xieyan 2012/10/22
* @param str checked string
* @param formatStr format
* @return true:is date | false:is not date
*/
public static boolean isDate(String str, String formatStr) {
if (isNull(str))
return false;
if (isNullOrEmpty(formatStr))
formatStr = DATE_DEFAULT_FORMAT;
if (str.length() != formatStr.length())
return false;
SimpleDateFormat format = new SimpleDateFormat(formatStr);
try {
return str.equals(format.format(format.parse(str))); // 这里用equals主要是为了防止像20121032这样数据会转为20121101
} catch (ParseException e) {
return false;
}
}
junit方法
/**
* test StringUtilities.isDate
*/
public void testIsDate() {
// string is 20121022
assertTrue(StringUtilities.isDate("20121022", ""));
// string is 20121022
assertTrue(StringUtilities.isDate("20121022", null));
// string is 20121022, format is yyyyMMdd
assertTrue(StringUtilities.isDate("20121022", "yyyyMMdd"));
// string is 2012/10/22, format is yyyy/MM/dd
assertTrue(StringUtilities.isDate("2012/10/22", "yyyy/MM/dd"));
// string is 2012-10-22, format is yyyy-MM-dd
assertTrue(StringUtilities.isDate("2012-10-22", "yyyy-MM-dd"));
// string is 20121022 11:53:00.123, format is yyyyMMdd hh:mm:ss.SSS
assertTrue(StringUtilities.isDate("20121022 11:53:00.123", "yyyyMMdd hh:mm:ss.SSS"));
// string is 2012122, format is yyyyMdd
assertFalse(StringUtilities.isDate("2012132", "yyyyMdd"));
// string is 2012/10/22, format is yyyy/MM/dd
assertFalse(StringUtilities.isDate("20121032", "yyyy-MM-dd"));
// string is 2012/10/22, format is yyyy/MM/dd
assertFalse(StringUtilities.isDate("20121032", "yyyyMMdd"));
// string is 2012122, format is yyyyMMdd
assertFalse(StringUtilities.isDate("2012132", "yyyyMMdd"));
// string is ""
assertFalse(StringUtilities.isDate("", "yyyyMMdd"));
// string is "null"
assertFalse(StringUtilities.isDate("null", "yyyyMMdd"));
// string is null
assertFalse(StringUtilities.isDate(null, "yyyyMMdd"));
}
有异议的朋友可以短信我。
分享到:
相关推荐
* @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...
在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些文档标题所涉及的Java正则表达式知识点的详细解释: 1. **正则表达式之道** 这个主题可能涵盖了正则表达式的基础概念,...
1. **Java日期API** - `LocalDate`:这个类用于表示没有时间信息的日期,如2023年1月1日。你可以通过`LocalDate.now()`获取当前日期,或者使用`LocalDate.of(year, month, day)`创建指定日期,例如`LocalDate.of...
在Java编程中,正则表达式(Regular Expression)是一种强大的文本处理工具,广泛应用于数据验证、文本搜索和替换等场景。对于Web开发来说,输入验证是必不可少的一环,以确保用户提交的数据符合预期的格式。本教程...
例如,`(\w+)\s+(\w+)\s+(\d+),\s+(\d+)`用于匹配类似`June 26, 1951`这样的日期格式,其中`\w+`匹配单词字符,`\s+`匹配一个或多个空白字符。 #### 三、Jakarta-ORO API使用示例 在Java中使用正则表达式,通常会...
Java正则表达式是编程语言Java中用于处理字符串的强大工具,它允许我们通过模式匹配来验证、提取或替换文本。在Java中,正则表达式是通过`java.util.regex`包中的类和接口实现的,如`Pattern`、`Matcher`和`...
日期验证(年月日) ```regex (\d{4})?((0?[1-9])|10|11|12)((0?[1-9])|[1-2][0-9]|3[0-1]) ``` - **解析**:该正则表达式用于验证日期格式是否正确。 - `(\d{4})?` 表示年份部分,可选。 - `((0?[1-9])|10|11|12...
本资料"java_zhengze.rar"提供了对Java正则表达式的详细讲解,包括基本概念、元字符、预定义字符类以及各种匹配操作,对于Java开发者来说是一份非常实用的学习资源。 首先,我们来了解一下正则表达式的基石——元...
java正则验证电话,手机,邮箱,日期,金额,很实用
- 此示例中,我们使用了一个较为简单的正则表达式来匹配日期。该表达式`(\d{4})[-/.](\d{2})[-/.](\d{2})`用于匹配标准的日期格式,包括年、月、日,并且允许使用破折号、斜杠或点作为分隔符。 - 使用`Matcher`对象...
### Java及Python正则表达式详解 #### 一、正则表达式简介 正则表达式是一种用于描述字符串模式的强大工具。它可以帮助我们快速高效地完成字符串搜索、替换等操作。正则表达式由一系列字符和特殊符号组成,用于...
总的来说,Java的正则表达式验证函数是一个强大的工具,能够帮助开发人员确保输入的数据符合预期的格式,从而提高程序的健壮性和用户体验。通过封装成静态方法,可以方便地在多个地方复用,降低了代码的复杂性。在...
例如,如果想要匹配一个以`t`开头,以`n`结尾的三个字母组成的单词,可以使用正则表达式`t.n`。这将匹配如`tan`、`ten`、`tin`等单词,同时也会匹配`tn`以及包含特殊字符的组合,如`t#n`、`tpn`等。 **示例**: - ...
除了基本的日期格式验证外,Java正则表达式还可以用来判断时间格式(例如HH:mm:ss),或者综合日期时间格式(YYYY-MM-DD HH:mm:ss)。根据不同需求,正则表达式将相应地进行调整。 以上就是本文关于Java中基于正则...
### Java中常用的正则表达式知识点详解 #### 一、中国电话号码验证 **应用场景:** 在进行用户信息录入或验证时,确保电话号码格式正确是常见需求之一。中国的电话号码通常包含区号(可选)及电话号码主体部分。 ...
Java中的正则表达式是处理和匹配文本模式的强大工具,尤其在进行数据验证、文本查找替换等场景下非常实用。正则表达式是由特定字符组成的字符串,定义了一种模式,用于在文本中寻找符合该模式的子串。 1. **基础...
下面是一些Java正则表达式的实例,包括邮箱验证、URL验证等。 ```java String emailRegex = "^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"; String urlRegex = "^https?://([a-zA-Z0-9\\-\\.]+)\\.(com|org|net|...
在"表单验证"这个压缩包文件中,可能包含了各种常用的正则表达式示例和代码片段,对于开发者来说,这是一份很好的参考资料,可以帮助他们快速实现表单验证功能,提高开发效率。通过学习和理解这些示例,开发者可以更...
#### 一、Java中的数字验证正则表达式 在Java中,可以通过`java.util.regex`包提供的工具来进行正则表达式的匹配操作。下面是一个示例方法,用于判断一个字符串是否只包含数字: ```java public boolean isNumber...
虽然C#提供了强大的日期处理库,例如`DateTime`和`Calendar`类,但在某些特定场景下,如需要对输入的文本进行日期格式的验证时,正则表达式则显得尤为重要。 #### 2. 日期的规则 ##### 2.1 日期的有效范围 - **...