一、先看看如何取當(dāng)前時(shí)間并顯示的代碼:
------------------------------------------------
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();//得到當(dāng)前系統(tǒng)時(shí)間
String str_date1 = formatter.format(currentTime); //將日期時(shí)間格式化
String str_date2 = currentTime.toString(); //將Date型日期時(shí)間轉(zhuǎn)換成字符串形式
%>
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時(shí)間:<%=str_date1%>
未經(jīng)格式化的String格式的日期時(shí)間:<%=str_date2%>
未經(jīng)格式化的Date格式的日期時(shí)間:<%=currentTime%>
-------------------------------------------------
頁(yè)面的輸出內(nèi)容:
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時(shí)間:2005-03-17 09:55:40
未經(jīng)格式化的String格式的日期時(shí)間:Thu Mar 17 09:55:40 CST 2005
未經(jīng)格式化的Date格式的日期時(shí)間:Thu Mar 17 09:55:40 CST 2005
通常我們需要的是這種格式化后的時(shí)間:2005-03-17 09:55:40。現(xiàn)在有這樣一個(gè)問(wèn)題:“2005-03-17 09:55:40”是一個(gè)字符串,有些時(shí)候我們需要在這個(gè)字符串里提取出年、月、日等的相關(guān)信息,怎么辦呢?看下面的代碼:
----------------------規(guī)則的字符串----------------------------------------------
規(guī)則的字符串(年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);
%>
----------------------------------------------------------------------------------
從上面的代碼我們可以看出來(lái):這只能針對(duì)規(guī)則的字符串(年4位,月2位,日2位),要是不規(guī)則的呢?年可能2位也可能4位,月和日可能1位也可能2位,怎么辦?通過(guò)對(duì)上面的代碼修改,可以得到下面的通用的代碼(這個(gè)“通用”有一個(gè)前提——年月日之間必須以“-”分隔):
----------------------不規(guī)則的字符串----------------------------------------------
不規(guī)則的字符串(年、月、日長(zhǎng)度不一定,中間用字符“-”分隔):
<br>原字符串為:
<%
String date="04-05-6";
out.println(date+"<br>");
int a=date.indexOf("-");//求第一個(gè)“-”的位數(shù)
int b=date.lastIndexOf("-");//求最后一個(gè)“-”的位數(shù)
int len=date.length();//求字符串的長(zhǎng)度
year=date.substring(0,a);//取第一個(gè)“-”前的字符串
month=date.substring(a+1,b);//取兩個(gè)“-”之間的字符串
day=date.substring(b+1,len);//取最后一個(gè)“-”以后的字符串
out.println("year="+year+",month="+month+",day="+day);
%>
----------------------------------------------------------------------------------
現(xiàn)在這個(gè)問(wèn)題解決了。可是我們會(huì)想到:每次需要對(duì)一個(gè)表示年月日的字符串進(jìn)行分割的時(shí)候都需要在.jsp頁(yè)面里寫(xiě)上這么一段代碼,不但麻煩而且使頁(yè)面顯得混亂,能不能以一種看起來(lái)更清晰的方法解決這個(gè)問(wèn)題呢?當(dāng)然可以了,用javabean就行了。
------------------------------------------------
<%
java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date currentTime = new java.util.Date();//得到當(dāng)前系統(tǒng)時(shí)間
String str_date1 = formatter.format(currentTime); //將日期時(shí)間格式化
String str_date2 = currentTime.toString(); //將Date型日期時(shí)間轉(zhuǎn)換成字符串形式
%>
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時(shí)間:<%=str_date1%>
未經(jīng)格式化的String格式的日期時(shí)間:<%=str_date2%>
未經(jīng)格式化的Date格式的日期時(shí)間:<%=currentTime%>
-------------------------------------------------
頁(yè)面的輸出內(nèi)容:
格式化成"yyyy-MM-dd HH:mm:ss"格式的日期時(shí)間:2005-03-17 09:55:40
未經(jīng)格式化的String格式的日期時(shí)間:Thu Mar 17 09:55:40 CST 2005
未經(jīng)格式化的Date格式的日期時(shí)間:Thu Mar 17 09:55:40 CST 2005
通常我們需要的是這種格式化后的時(shí)間:2005-03-17 09:55:40。現(xiàn)在有這樣一個(gè)問(wèn)題:“2005-03-17 09:55:40”是一個(gè)字符串,有些時(shí)候我們需要在這個(gè)字符串里提取出年、月、日等的相關(guān)信息,怎么辦呢?看下面的代碼:
----------------------規(guī)則的字符串----------------------------------------------
規(guī)則的字符串(年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);
%>
----------------------------------------------------------------------------------
從上面的代碼我們可以看出來(lái):這只能針對(duì)規(guī)則的字符串(年4位,月2位,日2位),要是不規(guī)則的呢?年可能2位也可能4位,月和日可能1位也可能2位,怎么辦?通過(guò)對(duì)上面的代碼修改,可以得到下面的通用的代碼(這個(gè)“通用”有一個(gè)前提——年月日之間必須以“-”分隔):
----------------------不規(guī)則的字符串----------------------------------------------
不規(guī)則的字符串(年、月、日長(zhǎng)度不一定,中間用字符“-”分隔):
<br>原字符串為:
<%
String date="04-05-6";
out.println(date+"<br>");
int a=date.indexOf("-");//求第一個(gè)“-”的位數(shù)
int b=date.lastIndexOf("-");//求最后一個(gè)“-”的位數(shù)
int len=date.length();//求字符串的長(zhǎng)度
year=date.substring(0,a);//取第一個(gè)“-”前的字符串
month=date.substring(a+1,b);//取兩個(gè)“-”之間的字符串
day=date.substring(b+1,len);//取最后一個(gè)“-”以后的字符串
out.println("year="+year+",month="+month+",day="+day);
%>
----------------------------------------------------------------------------------
現(xiàn)在這個(gè)問(wèn)題解決了。可是我們會(huì)想到:每次需要對(duì)一個(gè)表示年月日的字符串進(jìn)行分割的時(shí)候都需要在.jsp頁(yè)面里寫(xiě)上這么一段代碼,不但麻煩而且使頁(yè)面顯得混亂,能不能以一種看起來(lái)更清晰的方法解決這個(gè)問(wèn)題呢?當(dāng)然可以了,用javabean就行了。