一、先看看如何取目前時間並顯示的代碼:
------------------------------------------------
<%
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位,中間用字元“-”分隔):
<br>原字串為:
<%
String date="1989-12-30";
out.println(date+"<br>");
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位,怎麼辦?通過對上面的代碼修改,可以得到下面的通用的代碼(這個“通用”有一個前提——年月日之間必須以“-”分隔):
----------------------不規則的字串----------------------------------------------
不規則的字串(年、月、日長度不一定,中間用字元“-”分隔):
<br>原字串為:
<%
String date="04-05-6";
out.println(date+"<br>");
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頁面裡寫上這麼一段代碼,不但麻煩而且使頁面顯得混亂,能不能以一種看起來更清晰的方法解決這個問題呢?當然可以了,用javabean就行了。