最近在維護公司舊的系統(用的struts1框架)的時候,在日期處理的時候,我將日期設定為date型別,結果報以下錯誤:
後來查詢資料明白了原來是型別轉換錯誤,由於struts
預設是不支援自動將網頁
post
的資料自動轉化成
date
型資料,所以,很多程式設計師就直接在actionform
當中直接使用
string
,然後在
action
當中再進行字串跟日期資料的處理。但是這樣感覺又不太好,資料庫型別為date型別,而在form中確實用string。
同樣在struts中的form中如果有int,float,double,integer,float,double等基本型別,是不會報這樣的錯誤的。網頁post
過來的所有資料都是
string
型別,但是struts內部有乙個型別轉換器,能夠自動地將
string
型別轉換成為
int,float,double,integer,float,double
等型別。那繼承struts
內部有這些轉換器,那我們是否可以對其進行擴充套件?答案是可以的,
struts
的converter
框架很好地支援了這一點。
日期型別轉換器如下:
1/**2* 3
* 日期轉換物件,使用該轉換器,在baseform當中做一下註冊,系統自動地幫助字元的日期表示轉換為j**a.util.date物件.4*
@author
zizz.
5* create time:2006-9-11 19:11:47.6*/
7 publicclass dateconverter implements
converter
2425
/**26
* 日期轉換器.
27*
@param
type class
28*
@param
value object
29* return date object.
30*/
31public
object convert(class type,object value)elseif(value instanceof
string)catch
(parseexception ex)46}
47return
dateobj;
48 }else51}
52 }
自定義的日期轉換工作必須先做註冊才能使用,註冊我們可以將其放在actionform
當中。使用以下**進行註冊:
convertutils.register(new dateconverter(), date.class);
3 4 日期處理 問題 A 日期差值
有兩個日期,求兩個日期之間的天數,如果兩個日期是連續的我們規定他們之間的天數為兩天。有多組資料,每組資料有兩行,分別表示兩個日期,形式為yyyymmdd 每組資料輸出一行,即日期差值 20130101 20130105 解題關鍵 求日期之間相差的天數,有乙個很直接的思路,即令日期不斷加一天,直到兩個...
跨千年日期轉換
create orreplace function my to date p chr date invarchar2 return date is beginif p chr date isnull then return null elseif to date p chr date dd mm y...
演算法筆記(五)日期處理(差值)
題目描述 有兩個日期,求日期之間的差值,日期格式 yyyymmdd 樣例 輸入 輸出 答案 include int month 13 2 bool isleap int year 判斷是否為閏年 int main y1 time1 10000,m1 time1 10000 100,d1 time1 ...