七年的愛(ài)
          手中沒(méi)有劍,我如何保護(hù)她;手中握著劍,我如何抱緊她!
          posts - 7,comments - 3,trackbacks - 0
             最近做個(gè)一單機(jī)版項(xiàng)目,其中有兩個(gè)下拉框,要求里面輸入時(shí)間,格式必需是yyyy-mm-dd的。并且前面的時(shí)間不大于后面的時(shí)間。
              網(wǎng)上的做法檢查時(shí)間的正確性多數(shù)都是用正則表達(dá)式來(lái)做的。也一些其他的工具類來(lái)檢查,個(gè)人覺(jué)得都太麻煩了。后來(lái)發(fā)現(xiàn)了個(gè)土方法,代碼如下。

          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                      Date begin = null;
                      Date end = null;
                      if(baseInfoPage.getBeginDate().equals("")){
                          MessageDialog.openWarning(null, "提示信息", "請(qǐng)選擇保險(xiǎn)起期");
                          return;
                      }
                      if(baseInfoPage.getEndDate().equals("")){
                          MessageDialog.openWarning(null, "提示信息", "請(qǐng)選擇保險(xiǎn)止期");
                          return;
                      }
                      try {
                          begin = sdf.parse(baseInfoPage.getBeginDate());
                          end = sdf.parse(baseInfoPage.getEndDate());
                          String compare1 = sdf.format(begin);
                          String compare2 = sdf.format(end);
                          //時(shí)間邏輯錯(cuò)誤就返回
                          if(!baseInfoPage.getBeginDate().equals(compare1)){
                              MessageDialog.openWarning(null, "提示信息", "保險(xiǎn)起期時(shí)間不正確");
                              return;
                          }
                          if(!baseInfoPage.getEndDate().equals(compare2)){
                              MessageDialog.openWarning(null, "提示信息", "保險(xiǎn)止期時(shí)間不正確");
                              return;
                          }
                      } catch (ParseException e) {
                          MessageDialog.openWarning(null, "提示信息", "日期格式不正確,正確的日期格式為:yyyy-MM-dd");
                          return;
                      }
                      Calendar beginDate = Calendar.getInstance();
                      beginDate.setTime(begin);
                      Calendar endDate = Calendar.getInstance();
                      endDate.setTime(end);
                      if(beginDate.after(endDate)){
                          MessageDialog.openWarning(null, "提示信息", "保險(xiǎn)止期不能大于保險(xiǎn)起期!");
                          return;
                      }

          其中baseInfoPage.getBeginDate() 是我另一個(gè)類里的一個(gè)方法,也就是get combo里的text。我這里其實(shí)用到的是一個(gè)時(shí)間控件,開(kāi)源的,DatePickerCombo 。大家不防到網(wǎng)上搜下看看,蠻好用的,可是沒(méi)有swt 3.3里面內(nèi)置的DateTime時(shí)間控件那么好看。可是也還不錯(cuò)了。不過(guò)具體的這個(gè)時(shí)間怎么獲得都不重要,重要的只是這樣一個(gè)想法。
          當(dāng)把字符串格式化成時(shí)間后,在把時(shí)間格式化成字符串的時(shí)候,如果時(shí)間邏輯不正確的話,肯定是不一樣的。因?yàn)槿绻視r(shí)間格式成字符串的時(shí)候假如是2月31日,它會(huì)變成3月2日之類的,有興趣深入的朋友可以試一下其他的情況。應(yīng)該蠻有意思的。呵呵。時(shí)間:2007-02-28 = 字符串:2006-03-02 ???都可以試了下,午休時(shí)間不多了,下午又要干活,不多寫,睡覺(jué)~~ ZZzzz



          posted on 2007-09-10 13:32 逝去的圣男 閱讀(699) 評(píng)論(1)  編輯  收藏

          FeedBack:
          # re: java 中檢查時(shí)間正確性
          2008-12-30 13:10 | 北京時(shí)間
          睡覺(jué)~~ ZZzzz  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 兰溪市| 崇文区| 建瓯市| 望谟县| 黄龙县| 晋州市| 务川| 沙湾县| 镇巴县| 驻马店市| 华蓥市| 竹山县| 凉城县| 黑水县| 建湖县| 阿合奇县| 玉林市| 武威市| 鄱阳县| 江津市| 叙永县| 家居| 舟山市| 马尔康县| 崇文区| 喀喇沁旗| 东海县| 大田县| 龙州县| 黄冈市| 青川县| 宜章县| 常宁市| 灯塔市| 朝阳市| 宜君县| 大悟县| 怀宁县| 博乐市| 梁河县| 岱山县|