java 日期是否合法_检测日期字符串是否为合法(java版)

1 /**

2 * 检测日期字符串是否为合法3 *@paramdateStr4 *@paramformat5 *@return

6 */

7 public static final boolean checkDateFormat(String dateStr,String format) throwsNumberFormatException{8 if(dateStr == null || "".equals(dateStr) ) return false;9 if(dateStr.length() !=format.length()){10 //alert(objName+"长度和格式("+format+")要求的不一致,请重新输入");

11 return false;12 }13 Integer year=null,month=null ,day=null,hour=null,minute= null,second= null;14

15 if( "YYYY".equals(format)){16 year =Integer. valueOf(dateStr);17 } else if( "YYYYMM".equals(format)){18 year = Integer.valueOf(dateStr.substring(0,4));19 month = Integer.valueOf(dateStr.substring(4,6));20 } else if( "YYYYMMDD".equals(format)){21 year = Integer.valueOf(dateStr.substring(0,4));22 month = Integer.valueOf(dateStr.substring(4,6));23 day = Integer.valueOf(dateStr.substring(6,8));24 } else if( "YYYYMMDD HH:MI".equals(format)){25 year = Integer.valueOf(dateStr.substring(0,4));26 month = Integer.valueOf(dateStr.substring(4,6));27 day = Integer.valueOf(dateStr.substring(6,8));28 hour = Integer.valueOf(dateStr.substring(9,11));29 minute = Integer.valueOf(dateStr.substring(12,14));30 } else if( "YYYYMMDD HH:MI:SS".equals(format)){31 year = Integer.valueOf(dateStr.substring(0,4));32 month = Integer.valueOf(dateStr.substring(4,6));33 day = Integer.valueOf(dateStr.substring(6,8));34 hour = Integer.valueOf(dateStr.substring(9,11));35 minute = Integer.valueOf(dateStr.substring(12,14));36 second = Integer.valueOf(dateStr.substring(15,17));37 } else if( "YYYY-MM".equals(format)){38 if(! _checkSpecial(dateStr,4,"-")) return false;39 year = Integer.valueOf(dateStr.substring(0,4));40 month = Integer.valueOf(dateStr.substring(5,7));41 } else if( "YYYY-MM-DD".equals(format)){42 if(! _checkSpecial(dateStr,4,"-")) return false;43 if(! _checkSpecial(dateStr,7,"-")) return false;44 year = Integer.valueOf(dateStr.substring(0,4));45 month = Integer.valueOf(dateStr.substring(5,7));46 day = Integer.valueOf(dateStr.substring(8,10));47 } else if( "YYYY-MM-DD HH:MI:SS".equals(format)){48 if(! _checkSpecial(dateStr,4,"-")) return false;49 if(! _checkSpecial(dateStr,7,"-")) return false;50 year = Integer.valueOf(dateStr.substring(0,4));51 month = Integer.valueOf(dateStr.substring(5,7));52 day = Integer.valueOf(dateStr.substring(8,10));53 hour = Integer.valueOf(dateStr.substring(11,13));54 minute = Integer.valueOf(dateStr.substring(14,16));55 second = Integer.valueOf(dateStr.substring(17,19));56 } else if( "YYYYMMDDHHMISS".equals(format)){57 year = Integer.valueOf(dateStr.substring(0,4));58 month = Integer.valueOf(dateStr.substring(4,6));59 day = Integer.valueOf(dateStr.substring(6,8));60 hour = Integer.valueOf(dateStr.substring(8,10));61 minute = Integer.valueOf(dateStr.substring(10,12));62 second = Integer.valueOf(dateStr.substring(12,14));63 } else{64 //alert(objName+"中定义的时间格式还不能处理!");

65 return false;66 }67

68 //check year

69 if(year != null){70 if(year<1900 || year>2200){71 //alert(objName+" 年份 应介于1900与2200之间,请重新输入!");

72 return false;73 }74

75 }76 //check month

77 if(month != null){78 if(month<1 || month >12){79 //alert(objName+" 月份 应介于1与12之间,请重新输入!");

80 return false;81 }82 }83 //check day

84 if(day != null){85 if((day==0)||(day>31)){86 //alert(objName+" 日 必须介于1与31之间!");

87 return false;88 }89 else if(day>28 && day<31){90 if(month==2){91 if(day!=29){92 //alert(objName+year+"年"+month+"月无"+day+"日。");

93 return false;94 }95 else{96 if((year%4)!=0){97 //alert(objName+year+"年"+month+"月无"+day+"日。");

98 return false;99 }100 else{101 if((year%100==0)&&(year%400!=0)){102 //alert(objName+year+"年"+month+"月无"+day+"日。");

103 return false;104 }105 }106 }107 }108 }109

110 else if(day==31){111 if((month==2)||(month==4)||(month==6)||(month==9)||(month==11)){112 //alert(objName+month+"月无"+day+"日");

113 return false;114 }115 }116 }117 //check hour

118 if(hour != null){119 if(hour<0 || hour >23){120 //alert(objName+"小时应介于0与23之间,请重新输入!");

121 return false;122 }123 }124 //check minute

125 if(minute != null){126 if(minute<0 || minute >59){127 //alert(objName+"小时应介于0与59之间,请重新输入!");

128 return false;129 }130 }131 //check second

132 if(second != null){133 if(second<0 || second >59){134 //alert(objName+"秒应介于0与59之间,请重新输入!");

135 return false;136 }137 }138 return true;139 }140

141 private static boolean _checkSpecial(String str, intpos,String identifier){142 if(str.substring(pos,pos+1).equals(identifier)) return true;143 return false;144 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从零开始搭建一个vue.js的脚手架

在谷歌工作的时候&#xff0c;我们要做很多界面的原型&#xff0c;要求快速上手&#xff0c;灵活运用&#xff0c;当时用的一些现有框架&#xff0c;比如angular&#xff0c;太笨重了——尤雨溪&#xff08;Vue.js 作者&#xff09; vue.js是现在一个很火的前端框架&#xff0c…

更安全的Web通信HTTPS

1. HTTP协议存在的问题 阅读本篇需要对HTTP协议有最基本的了解。 借用《图解密码技术》里的图片&#xff0c;我们以如下一个购物场景开始介绍&#xff1a; 在网购过程中&#xff0c;如果使用纯粹的HTTP协议&#xff0c;那么用户的账号密码&#xff0c;信用卡&#xff0c;银行卡…

Java中的Memento设计模式-示例教程

记忆模式是行为设计模式之一 。 当我们要保存对象的状态以便以后可以恢复时&#xff0c;可以使用Memento设计模式。 记忆模式用于以这种方式实现该目的&#xff0c;即在对象外部无法访问该对象的已保存状态数据&#xff0c;从而保护了已保存状态数据的完整性。 Memento模式通过…

CSS入门指南——页面的水平居中

我们经常看到这样的网页&#xff0c;即内容水平居中在屏幕中间&#xff0c;左右留白。我们来给这样的布局起个名字——水平居中布局 其实要实现这样的布局十分简单&#xff0c;即给中间部分一个宽度&#xff0c;设置margin左右值为auto,如&#xff0c;中间部分class"main&…

python控制台执行代码字符串_编写Python脚本以使用控制台命令执行

研究是在底部&#xff0c;阅读之前。。。谢谢。在我必须编写一个运行SQL查询的Python脚本。我创建了一个主类&#xff0c;名为SQLQuery。每个SQLQuery实例表示一个查询。脚本的结构必须如下所示&#xff1a;class SQLQuery(object):def __init___(self, string_myQuery)...inst…

Linux Tools Quick Tutorial 学习记录

总体 书籍链接 find命令 查找大于多少的文件 find / -type f -size 5M | xargs ls -lh | awk {print $5, $9} | ls -lrt

mysql explain的使用

一、explain返回各列的含义&#xff1a; 1、table&#xff1a;显示这一行的数据是关于那张表的 2、type&#xff1a;重要的列&#xff0c;显示连接使用了何种类型&#xff0c;从最好到最差的连接类型为const、eq_reg、ref、range、index、ALL 3、possible_keys&#xff1a;显示…

使用 Canvas 生成公众号头图

熟悉“前端晚自修”的朋友们应该知道&#xff0c;我们每期的头图除了上面的文字随着每期变动以外&#xff0c;几乎是一模一样的&#xff08;因为太懒了~&#xff09;。这个头图虽然丑了一点&#xff0c;但是也还说的过去&#xff0c;毕竟是我倾尽毕生艺术细胞拼出来的&#xff…

通过快速Java和文件序列化加快速度

从Java的第一个版本开始&#xff0c;每天都有许多开发人员试图至少达到与C / C 一样好的性能。 JVM供应商正在通过实现一些新的JIT算法来尽力而为&#xff0c;但仍有许多工作要做&#xff0c;尤其是在我们如何使用Java方面。 例如&#xff0c;对象<->文件序列化有很多优…

Flask mysql 模版传参_Flask渲染Jinja2模板和传参

### Flask渲染Jinja2模板和传参&#xff1a;1. 如何渲染模板&#xff1a;* 模板放在templates文件夹下* 从flask中导入render_template函数。* 在视图函数中&#xff0c;使用render_template函数&#xff0c;渲染模板。注意&#xff1a;只需要填写模板的名字&#xff0c;不需要…

08 Spring框架 AOP (一)

首先我们先来介绍一下AOP&#xff1a; AOP&#xff08;Aspect Orient Programming&#xff09;&#xff0c;面向切面编程&#xff0c;是面向对象编程OOP的一种补充。 面向对象编程是从静态角度考虑程序的结构&#xff0c;面向切面编程是从动态的角度考虑程序运行过程。 AOP底层…

使用Spring 3.2的DeferredResult进行长轮询

在我们的最后一集中 &#xff0c; Agile Cowboys Inc.的首席执行官刚刚雇用了Java / Spring顾问&#xff0c;方法是为他提供最初为女友购买的保时捷。 这位首席执行官的女友因失去保时捷而感到不安&#xff0c;已将其婚外情告诉了他的妻子。 他的妻子在分拆了CEO的套房后已申请…

移动spa商城优化记(一)---首屏优化篇

背景 随着公司业务的不断壮大&#xff0c;最近老是有用户反应公司APP内的商城打开比较慢&#xff0c;这可不行啊&#xff0c;慢了容易流失用户&#xff0c;流失用户减少公司业绩&#xff0c;公司业绩少我的年终奖就少…………&#xff0c;所以为了公司&#xff0c;也为了自己&a…

hprose for java 教程_hprose for java源码分析-4

4.1 疑窦丛生书接上回。上回说到&#xff0c;从HproseClient.java ------------------------- (#0)invokeHandler.handle()开始&#xff0c;将经历一个漫长的调用过程&#xff0c;下面把整个调用链粘出来&#xff0c;先认识下这个庞然大物。( >>> 表示调用到&#xff…

Git可视化极简易教程 — Git GUI使用方法

Git可视化极简易教程 — Git GUI使用方法 学习了&#xff1a;http://www.runoob.com/w3cnote/git-gui-window.html转载于:https://www.cnblogs.com/stono/p/9026292.html

如何用堆栈来保存和恢复滚动条位置

问题背景 在单页应用中&#xff0c;翻页一般通过display:none将先前的面板&#xff08;一般就是个div容器&#xff09;隐藏&#xff0c;然后将本次需要展现的面板设置成display:block&#xff08;当然&#xff0c;还可能加点css切换动画&#xff0c;不过不影响我们本次的讨论结…

如何在Hibernate中维护表的历史记录

为了维护数据库的历史记录或跟踪数据库表行的修改&#xff0c;我们创建了一个版本表&#xff0c;其中包含与原始表相同的字段。每当原始表被更改时&#xff0c;我们都会在版本表中创建另一个条目。 因此&#xff0c;对于每个更新查询&#xff0c;我们都必须在版本表中编写一个插…

java批量提取文件夹名称_bat 批量提取指定目录下的文件名

bat 批量提取指定目录下的文件名下面是批量获取指定目录下的文件名的核心代码echo offecho text inputset inputset /p input:echo %input% is inputcd %input%rem echo onfor %%a in (*) do (echo %%a is input)cd ..如下是sql server执行对应脚本文件sqlcmd -Spcserver -dmas…

埃及分数The Rotation Game骑士精神——IDA*

IDA*&#xff1a;非常好用的搜索&#xff0c;可以解决很多深度浅&#xff0c;但是规模大的搜索问题。 估价函数设计思路&#xff1a;观察一步最多能向答案靠近多少。 埃及分数 题目大意&#xff1a; 给出一个分数&#xff0c;由分子a 和分母b 构成&#xff0c;现在要你分解成一…

[UE4]创建Shooter基类,2种方法

一、可以通过直接修改"BP_FPPCharacter"的名字为“BP_Shooter”作为基类&#xff0c;然后新建一个"BP_FPPCharacter"继承自“BP_Shooter”。 这种方法适用于各个类对"BP_FPPCharacter"依赖不多的情况。 二、创建一个“BP_Shooter”继承于“Chara…