java中的日期轉(zhuǎn)換、springmvc接收前臺(tái)的Date類型參數(shù)遇到的坑

博客文章:https://www.zjhuiwan.cn/info/20180925/1809251210427830002.html

關(guān)于springmvc接收前臺(tái)傳的時(shí)間類型參數(shù)

前臺(tái)jsp用的一個(gè)日期插件,后臺(tái)獲取一直有問題每窖。

被這個(gè)問題搞了好久肺素,其實(shí)很簡(jiǎn)單粤策。記錄下來壮锻,希望可以幫到遇到同樣問題的同學(xué)琐旁。

我項(xiàng)目使用的ssm框架, 在做web開發(fā)的時(shí)候猜绣,頁面?zhèn)魅氲亩际荢tring類型灰殴,SpringMVC可以對(duì)一些基本的類型進(jìn)行轉(zhuǎn)換,但是對(duì)于日期類的轉(zhuǎn)換可能就需要我們配置掰邢。

1牺陶、如果查詢類是我們自己寫,那么在屬性前面加上@DateTimeFormat(pattern = "yyyy-MM-dd")? 辣之,即可將String轉(zhuǎn)換為Date類型掰伸,如下

@DateTimeFormat(pattern = "yyyy-MM-dd")

private Date createTime;

2、如果我們只負(fù)責(zé)web層的開發(fā)怀估,就需要在controller中加入數(shù)據(jù)綁定:

(```

@InitBinder??

?public?void?initBinder(WebDataBinder?binder)?{??

?????SimpleDateFormat?dateFormat?=?new?SimpleDateFormat("yyyy-MM-dd");??

?????dateFormat.setLenient(false);??

?????binder.registerCustomEditor(Date.class,?new?CustomDateEditor(dateFormat,?true));

?????//true:允許輸入空值狮鸭,false:不能為空值

```)

3、可以在系統(tǒng)中加入一個(gè)全局類型轉(zhuǎn)換器實(shí)現(xiàn)轉(zhuǎn)換器多搀,新建一個(gè)controller

(```

public?class?DateConverter?implements?Converter<String,?Date>?{????

??@Override????

??public?Date?convert(String?source)?{????

??????SimpleDateFormat?dateFormat?=?new?SimpleDateFormat("yyyy-MM-dd");????

?????dateFormat.setLenient(false);????

??????try?{????

?????????return?dateFormat.parse(source);????

?????}?catch?(ParseException?e)?{????

?????????e.printStackTrace();????

?????}???????????

?????return?null;????

?}

```)


在springmvc配置文件中進(jìn)行配置:

(```

<beanid="conversionService"class="org.springframework.format.support.

FormattingConversionServiceFactoryBean">????

????????<propertyname="converters">????

????????????<list>????

????????????????<beanclass="com.doje.XXX.web.DateConverter"/>????

????????????</list>????

????????</property>????

</bean>?

<mvc:annotation-drivenconversion-service="conversionService"/>

```)

我使用了第三種方式歧蕉,但在運(yùn)行的時(shí)候報(bào)錯(cuò),最后發(fā)現(xiàn)是DateConverter類中的日期轉(zhuǎn)換有問題康铭,

debug發(fā)現(xiàn)前臺(tái)傳過來的是一串?dāng)?shù)字惯退,猜測(cè)應(yīng)該是毫秒,然后就在DateConverter類中將接受的source先進(jìn)行了毫秒轉(zhuǎn)成日期格式的時(shí)間从藤,在進(jìn)行轉(zhuǎn)換結(jié)果沒報(bào)錯(cuò)但日期還是不對(duì)催跪,最后猜測(cè)前臺(tái)傳過來的應(yīng)該是秒,debug將穿過來的日期記下來呛哟,用計(jì)算器轉(zhuǎn)換發(fā)現(xiàn)確實(shí)是秒(這日期插件 --5!扫责!一開始沒想到傳過來的時(shí)間是秒..算是個(gè)坑吧i欢Α)。問題找到了鳖孤,剩下的就是日期轉(zhuǎn)換的問題了(

java中時(shí)間類型轉(zhuǎn)換

(```

/**

?????*?秒轉(zhuǎn)換為指定格式的日期

?????*?

?????*?@param?second

?????*?@param?patten

?????*?@return?Date類型

?????*?@throws?ParseException

?????*/

????public?synchronized?static?Date?secondToDate(long?second,

?????String?patten)?throws?

????ParseException?{

????????Calendar?calendar?=?Calendar.getInstance();

????????calendar.setTimeInMillis(second?*?1000);//?轉(zhuǎn)換為毫秒

????????Date?date?=?calendar.getTime();

????????SimpleDateFormat?formatter?=?new?SimpleDateFormat(patten);

????????String?dateString?=?formatter.format(date);

????????//?ParsePosition?pos?=?new?ParsePosition(8);

????????Date?currentTime?=?formatter.parse(dateString);

????????return?currentTime;

????}

????/**

?????*?秒轉(zhuǎn)換為指定格式的日期

?????*?

?????*?@param?second

?????*?@param?patten

?????*?@return?String類型

?????*/

????public?synchronized?static?String?secondToDateString(long?second,?

????String?patten)

?????{

????????Calendar?calendar?=?Calendar.getInstance();

????????calendar.setTimeInMillis(second?*?1000);//?轉(zhuǎn)換為毫秒

????????Date?date?=?calendar.getTime();

????????SimpleDateFormat?format?=?new?SimpleDateFormat(patten);

????????String?dateString?=?format.format(date);

????????return?dateString;

????}

????/**

?????*?返回日時(shí)分秒

?????*?

?????*?@param?second

?????*?@return

?????*/

????public?synchronized?static?String?secondToTime(long?second)?{

????????long?days?=?second?/?86400;//?轉(zhuǎn)換天數(shù)

????????second?=?second?%?86400;//?剩余秒數(shù)

????????long?hours?=?second?/?3600;//?轉(zhuǎn)換小時(shí)數(shù)

????????second?=?second?%?3600;//?剩余秒數(shù)

????????long?minutes?=?second?/?60;//?轉(zhuǎn)換分鐘

????????second?=?second?%?60;//?剩余秒數(shù)

????????if?(0?<?days)?{

????????????return?days?+?"天者娱,"?+?hours?+?"小時(shí),"?+minutes?+

?????????????"分苏揣,"+second+?"秒";

????????}?else?{

????????????return?hours?+?"小時(shí)黄鳍,"?+?minutes?+?"分,"?+?

????????????second?+?"秒";

????????}

????}

```)


好了平匈,基本就是這樣了框沟。這個(gè)問題關(guān)鍵在于前臺(tái)傳過來的居然是秒藏古,搞了半天....

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市忍燥,隨后出現(xiàn)的幾起案子拧晕,更是在濱河造成了極大的恐慌,老刑警劉巖梅垄,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件厂捞,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡队丝,警方通過查閱死者的電腦和手機(jī)靡馁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來机久,“玉大人臭墨,你說我怎么就攤上這事⊥碳樱” “怎么了裙犹?”我有些...
    開封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)衔憨。 經(jīng)常有香客問我叶圃,道長(zhǎng),這世上最難降的妖魔是什么践图? 我笑而不...
    開封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任掺冠,我火速辦了婚禮,結(jié)果婚禮上码党,老公的妹妹穿的比我還像新娘德崭。我一直安慰自己,他們只是感情好揖盘,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開白布眉厨。 她就那樣靜靜地躺著,像睡著了一般兽狭。 火紅的嫁衣襯著肌膚如雪憾股。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天箕慧,我揣著相機(jī)與錄音服球,去河邊找鬼。 笑死颠焦,一個(gè)胖子當(dāng)著我的面吹牛斩熊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播伐庭,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼粉渠,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼分冈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起渣叛,我...
    開封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤丈秩,失蹤者是張志新(化名)和其女友劉穎盯捌,沒想到半個(gè)月后淳衙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饺著,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年箫攀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片幼衰。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靴跛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出渡嚣,到底是詐尸還是另有隱情梢睛,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布识椰,位于F島的核電站绝葡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏腹鹉。R本人自食惡果不足惜藏畅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望功咒。 院中可真熱鬧愉阎,春花似錦、人聲如沸力奋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽景殷。三九已至溅呢,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滨彻,已是汗流浹背藕届。 一陣腳步聲響...
    開封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留亭饵,地道東北人休偶。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像辜羊,于是被迫代替她去往敵國(guó)和親踏兜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子词顾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容