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

          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                      Date begin = null;
                      Date end = null;
                      if(baseInfoPage.getBeginDate().equals("")){
                          MessageDialog.openWarning(null, "提示信息", "請選擇保險起期");
                          return;
                      }
                      if(baseInfoPage.getEndDate().equals("")){
                          MessageDialog.openWarning(null, "提示信息", "請選擇保險止期");
                          return;
                      }
                      try {
                          begin = sdf.parse(baseInfoPage.getBeginDate());
                          end = sdf.parse(baseInfoPage.getEndDate());
                          String compare1 = sdf.format(begin);
                          String compare2 = sdf.format(end);
                          //時間邏輯錯誤就返回
                          if(!baseInfoPage.getBeginDate().equals(compare1)){
                              MessageDialog.openWarning(null, "提示信息", "保險起期時間不正確");
                              return;
                          }
                          if(!baseInfoPage.getEndDate().equals(compare2)){
                              MessageDialog.openWarning(null, "提示信息", "保險止期時間不正確");
                              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, "提示信息", "保險止期不能大于保險起期!");
                          return;
                      }

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



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

          FeedBack:
          # re: java 中檢查時間正確性
          2008-12-30 13:10 | 北京時間
          睡覺~~ ZZzzz  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 罗甸县| 镇雄县| 甘德县| 昌乐县| 高雄市| 临猗县| 庆云县| 阜南县| 孝义市| 海原县| 汉寿县| 容城县| 都匀市| 东山县| 吉木萨尔县| 砚山县| 右玉县| 福贡县| 阳城县| 义乌市| 富顺县| 眉山市| 民丰县| 南开区| 霍林郭勒市| 名山县| 隆子县| 德格县| 青川县| 兴安县| 咸丰县| 华容县| 宜阳县| 东丰县| 托里县| 老河口市| 富锦市| 海安县| 湄潭县| 九江县| 宕昌县|