在一般的WEB编程中,经常会碰到字符串形式的日期,需要将这个日期转化为Date对象来使用或是存储。这是一个比较常用的功能,我们有必要将它抽取出来做成一个小工具,以备后需!
我在这里说的只是日期Date,不包括时间Time YYYY-MM-DD
private static final String DATESTRING_CONTAINS_1 = "-";
private static final String DATESTRING_CONTAINS_2 = "/";
private static final String DATESTRING_CONTAINS_3 = ":";
/** *//**
* 判断该字符串是否为正确格式的时间
* YYYY-MM-DD YYYY:MM:DD YYYY/MM/dd
* 注意加入对于月份和天数的判断还有闰年 比如2月28日
* @param dateString
* @return
*/
public static boolean isRightDateFormat(String dateString) ...{
String delimer = "";
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_1)) ...{
delimer = StringUtils.DATESTRING_CONTAINS_1;
return dateFormatHelper(dateString, delimer);
}
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_2)) ...{
delimer = StringUtils.DATESTRING_CONTAINS_2;
return dateFormatHelper(dateString, delimer);
}
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_3)) ...{
delimer = StringUtils.DATESTRING_CONTAINS_3;
return dateFormatHelper(dateString, delimer);
}
return false;
}
//date判断辅助类
private static boolean dateFormatHelper(String dateString, String delimer) ...{
String [] tempSplits = new String[3];
try ...{
if (StringUtils.containsString(dateString, delimer)) ...{
tempSplits = dateString.split(delimer);
if ((Integer.parseInt(tempSplits[0])>=0 && Integer.parseInt(tempSplits[0]) <=3000)
&& (Integer.parseInt(tempSplits[1]) >=1 && Integer.parseInt(tempSplits[1]) <=12)
&& (Integer.parseInt(tempSplits[2]) >=1 && Integer.parseInt(tempSplits[2]) <=31)) ...{
//获得当前月份 如果是 4 6 9 11月份则应该是30天
int tmpMonth = Integer.parseInt(tempSplits[1]);
int tmpDate = Integer.parseInt(tempSplits[2]);
int tmpYear = Integer.parseInt(tempSplits[0]);
if(tmpMonth == 4
|| tmpMonth == 6
|| tmpMonth == 9
|| tmpMonth == 11) ...{
if (tmpDate > 30) ...{
return false;
}
} else if (tmpMonth == 2) ...{
//对于2月份天数的判断
if (tmpYear%4 == 0) ...{
if (tmpDate > 29) ...{
return false;
}
} else ...{
if (tmpDate > 28) ...{
return false;
}
}
}
return true;
} else ...{
return false;
}
}
} catch (NumberFormatException e) ...{
// TODO Auto-generated catch block
return false;
}
return false;
}
/** *//**
* 通过dateString得到Date对象
* DateString的格式必须为 YYYY-MM-DD YYYY:MM:DD YYYY/MM/dd
*
* @param dateString
* @return
*/
public static Date getDateByString(String dateString) ...{
//
// if (!isRightDateFormat(dateString)) {
// return null;
// }
Date retDate = null;
SimpleDateFormat sdf = new SimpleDateFormat();
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_1)) ...{
sdf.applyPattern("yyyy-MM-dd");
}
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_2)) ...{
sdf.applyPattern("yyyy/MM/dd");
}
if (StringUtils.containsString(dateString, StringUtils.DATESTRING_CONTAINS_3)) ...{
sdf.applyPattern("yyyy:MM:dd");
}
try ...{
retDate = sdf.parse(dateString);
} catch (ParseException e) ...{
retDate = null;
}
return retDate;
}
在这里还对闰年,闰月,30天的月份进行了判断
使用:可以先调用isRightDateFormat方法判断字符串是否正确格式,再调用getDateByString获得Date对象
或者直接调用getDateByString方法,但要将其中注释掉的那两行添上
分享到:
相关推荐
"JAVA日期判断方法小结" 在JAVA语言中,日期判断是非常重要的一部分,以下是常见的日期判断方法的总结: 1. 判断某年是否为润年 判断某年是否为润年是日期判断的基本方法之一。该方法可以使用以下代码实现: ```...
### 比较Date类型:判断两个日期的早晚 在Java编程中,处理日期是非常常见的需求之一。尤其是在涉及时间排序、日程管理等场景时,能够准确地比较两个`Date`对象的先后顺序至关重要。本文将详细介绍如何在Java中比较...
根据给定的信息,本文将详细解释“NextDate()函数判断输入日期的下一天(C语言编写)”这一知识点。文章将分为几个部分:背景介绍、关键函数解析、日期合法性检查功能解析以及完整的程序运行逻辑。 ### 背景介绍 ...
以上三个函数提供了JavaScript中处理日期的基本能力:比较日期大小、验证日期格式以及判断两个日期是否在同一个月份。这些函数可以很好地帮助开发者在Web应用中进行日期相关的逻辑处理,从而提高应用程序的功能性和...
以上代码示例提供了一种完整的日期格式验证方法,包括了正则表达式的使用、年月日的有效性检查以及闰年的判断等关键步骤。这种方法不仅可以应用于简单的日期验证场景,也可以根据实际需求进行扩展,例如增加对其他...
其中`Date`是要格式化的日期,`NamedFormat`是用于指定输出格式的标识符。 - `vbGeneralDate (0)`:默认格式,默认显示为“月/日/年”或“小时:分钟:秒”。如果未指定,则使用此值。 - `vbLongDate (1)`:使用长...
- 常见的日期时间格式化方法可以将Date对象转换为指定格式的字符串。 - `Date.prototype.isLeapYear` 方法判断是否为闰年。 - `Date.prototype.Format` 方法自定义格式化日期时间。 - 格式化中常用的是:YYYY...
针对标题"oracle日期时间判断函数"和描述中提到的内容,我们可以深入探讨两个关键的函数,它们主要用于判断字符串是否可以转换为合法的日期时间格式。 1. TO_DATE函数: TO_DATE是Oracle中用于将字符串转换为日期...
在给定的文件中,我们看到了三个示例,它们分别展示了如何创建Date对象、格式化日期以及解析日期字符串。 1. **创建Date对象并获取时间戳**: 在`DateExample1` 类中,通过 `new Date()` 创建了一个表示当前系统...
本篇文章将深入探讨如何设计一个功能完备的日期类Date,并实现日期的基本运算,包括日期增加天数、减少天数以及计算两个日期之间相差的天数。 首先,从类的设计入手,日期类Date应当包含年(year)、月(month)、日...
为了判断给定字符串是否符合正确的日期格式,可以创建一个名为 `fc_ck_date` 的函数。该函数接受一个 CHAR 类型的参数 `p_cont`,并返回一个 tinyint 类型的结果,表示该字符串的日期格式是否正确。函数的具体实现...
在C++编程语言中,创建自定义的日期类...这只是一个基础的Date类实现,实际应用中可能需要添加更多的功能,如日期格式化、日期有效性检查等。理解并掌握这些基本概念,将有助于你在C++中更有效地处理日期相关的任务。
### 使用JavaScript验证日期格式 在Web开发中,经常需要对用户输入的数据进行验证,确保其符合预期的格式或规则。本文将详细介绍如何使用JavaScript来验证日期格式的正确性。我们将通过一个具体的示例来探讨这一...
判断所传入的字符串是不是时间类型,日期类型,如果是日期类型可以转换成Date类型
vb 判断字符串是否为日期或时间,在输入框输入任意字符串类型,程序将会判断出该字符串是否是时间字符串,这个判断方法VB员自带有函数,使用IsDate即可实现,下面是使用IsDate的简单用法示例: If IsDate(Text1) =...
本资源摘要信息涵盖了 C++ 程序设计的基础知识点,包括日期类 Date 的设计和实现、圆类 Circle 的设计和实现,以及点类 Point 的设计和实现。 一、日期类 Date 的设计和实现 在 C++ 程序设计中,日期类 Date 是一...
本篇博文主要探讨的是如何在JavaScript中判断两个时间日期的大小。JavaScript内置了Date对象,可以用来创建、操作和比较日期。以下是对这个主题的详细说明: 首先,我们需要了解JavaScript中的Date对象。Date对象...
### PB日期转换与格式转换详解 PowerBuilder(简称PB)是一种快速应用开发工具,用于创建企业级客户端/服务器和Web应用程序。在PB中,日期和时间处理是常见且重要的功能,涉及多种函数来帮助开发者进行日期转换、...
在iOS开发中,日期和时间的格式化是一个常见的任务,特别是在显示用户友好的时间戳时。"iOS日期格式化类(刚刚、一分钟前、昨天、周几)"这个主题聚焦于如何利用Objective-C来处理日期的本地化显示,使得时间表述更加...
这里python判断给定的字符串是否是一个有效的日期,如果是一个日期格式的字符串,该函数返回True,否则返回False def is_valid_date(str): '''判断是否是一个有效的日期字符串''' try: time.strptime(str, %Y-%m...