代码改变世界

JSP获取当前时间

2012-11-12 01:39  owenyang  阅读(7810)  评论(0编辑  收藏  举报

JSP获取当前时间

一、先看看如何取当前时间并显示的代码

------------------------------------------------ 
<% 
 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
 java.util.Date currentTime = new java.util.Date();//得到当前系统时间 
 String str_date1 = formatter.format(currentTime); //将日期时间格式化 
 String str_date2 = currentTime.toString(); //将Date型日期时间转换成字符串形式 
 %> 



格式化成"yyyy-MM-dd HH:mm:ss"格式的日期时间:<%=str_date1%> 
未经格式化的String格式的日期时间:<%=str_date2%> 
未经格式化的Date格式的日期时间:<%=currentTime%> 

------------------------------------------------- 
页面的输出内容: 
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期时间:2005-03-17 09:55:40 
未经格式化的String格式的日期时间:Thu Mar 17 09:55:40 CST 2005 
未经格式化的Date格式的日期时间:Thu Mar 17 09:55:40 CST 2005 

通常我们需要的是这种格式化后的时间:2005-03-17 09:55:40。现在有这样一个问题:“2005-03-17 09:55:40”是一个字符串,有些时候我们需要在这个字符串里提取出年、月、日等的相关信息,怎么办呢?看下面的代码: 
----------------------规则的字符串---------------------------------------------- 
规则的字符串(年4位,月2位,日2位,中间用字符“-”分隔): 

原字符串为: 
<% 
 String date="1989-12-30"; 
 out.println(date+"
 "); 
 String year=date.substring(0,4);//取第0+1位至第4位 
 String month=date.substring(5,7);//取第5+1位至第7位 
 String day=date.substring(8,10);//取第8+1位至第10位 
 out.println("year="+year+",month="+month+",day="+day); 
 %> 


---------------------------------------------------------------------------------- 
从上面的代码我们可以看出来:这只能针对规则的字符串(年4位,月2位,日2位),要是不规则的呢?年可能2位也可能4位,月和日可能1位也可能2位,怎么办?通过对上面的代码修改,可以得到下面的通用的代码(这个“通用”有一个前提——年月日之间必须以“-”分隔): 
----------------------不规则的字符串---------------------------------------------- 
不规则的字符串(年、月、日长度不一定,中间用字符“-”分隔): 

原字符串为: 
<% 
 String date="04-05-6"; 
 out.println(date+"
 "); 
 int a=date.indexOf("-");//求第一个“-”的位数 
 int b=date.lastIndexOf("-");//求最后一个“-”的位数 
 int len=date.length();//求字符串的长度 
 year=date.substring(0,a);//取第一个“-”前的字符串 
 month=date.substring(a+1,b);//取两个“-”之间的字符串 
 day=date.substring(b+1,len);//取最后一个“-”以后的字符串 
 out.println("year="+year+",month="+month+",day="+day); 
 %> 
 



二、jsp得到当前日期与时间


<%
 java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 java.util.Date currentTime = new java.util.Date();//得到当前系统时间
 String str_date1 = formatter.format(currentTime); //将日期时间格式化
 String str_date2 = currentTime.toString(); //将Date型日期时间转换成字符串形式
 %>
 
 <%=str_date1%> on(Rollover){ 
 _root.stop(); 
 }on(Rollout){ 
 _root.play(); 
 }