struts1日期轉換處理

2022-09-15 08:45:10 字數 3043 閱讀 5892

最近在維護公司舊的系統(用的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 ...