<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    子在川上曰

      逝者如斯夫不舍晝夜
    隨筆 - 71, 文章 - 0, 評論 - 915, 引用 - 0
    數據加載中……

    在JAVA中如何檢查字符串日期的合法性

    文/陳剛 from www.chengang.com.cn 2005-11-04 


      在SWT中還沒有日期控件,所以我的日期是用文本框手工輸入的,這時就需要驗證輸入的日期是否合法。在之前我是復制很久以前寫的一段代碼,它的解決方法是分解日期字串,然后檢查,這很笨且不嚴格。正確的方案應該是利用DateFormat類來檢查,如下所示:
     
    public final class StringUtil {
        private static Calendar calendar = Calendar.getInstance();
        private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        private static DateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        static {
            dateFormat.setLenient(false);//這個的功能是不把1996-13-3 轉換為1997-1-3
            dateTimeFormat.setLenient(false);
        }
     
        public static Date parseStringToDate(String dateStr) {
            if (dateStr == null || dateStr.trim().equals(""))
                return null;
            dateStr = dateStr.trim();
            Date date = null;
            try {
                if (dateStr.length() <= 10) {
                    date = dateFormat.parse(dateStr);
                } else {
                    date = dateTimeFormat.parse(dateStr);
                }
            } catch (Exception e) {
                throw new IllegalArgumentException("你輸入的日期不合法,請重新輸入");
            }
            return date;
        }
    }

     
    這個方法的Test Case也一并給出如下:
     
    public class TestStringUtil extends TestCase {
        public void testParseStringToDate() {
            {
                Calendar c = Calendar.getInstance();
                c.clear();
                c.set(2000, 1, 3, 0, 0, 0);
                Date d = StringUtil.parseStringToDate("2000-02-03");
                assertEquals(c.getTime().getTime(), d.getTime());
            }
            {
                Calendar c = Calendar.getInstance();
                c.clear();
                c.set(2000, 1, 3, 11, 22, 33);
                Date d = StringUtil.parseStringToDate("2000-02-03 11:22:33");
                assertEquals(c.getTime().getTime(), d.getTime());
            }
            {
                Calendar c = Calendar.getInstance();
                c.clear();
                c.set(2000, 1, 3, 0, 0, 0);
                Date d = StringUtil.parseStringToDate("2000-02-3");
                assertEquals(c.getTime().getTime(), d.getTime());
            }
            {
                Calendar c = Calendar.getInstance();
                c.clear();
                c.set(2000, 1, 3, 1, 2, 3);
                Date d = StringUtil.parseStringToDate("2000-02-03 1:02:03");
                assertEquals(c.getTime().getTime(), d.getTime());
            }
            {
                assertNull(StringUtil.parseStringToDate(""));
                assertNull(StringUtil.parseStringToDate("  "));
                assertNull(StringUtil.parseStringToDate(null));
            }
        }
        public void testParseStringToDateException() {
            testParseStringToDateException("2000");
            testParseStringToDateException("2000-13-03");
            testParseStringToDateException("2000-02-03 51:02:03");
            testParseStringToDateException("2000-02-03 01:f2:03");
            testParseStringToDateException("2000-02-03 01:02");
            testParseStringToDateException("2000-02-03 01:02:222");
        }
        private void testParseStringToDateException(String dateStr) {
            try {
                StringUtil.parseStringToDate(dateStr);
                fail("末拋出異常");
            } catch (Exception e) {
                assertTrue(true);
            }
        }
    }

    posted on 2006-03-07 14:39 陳剛 閱讀(3527) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 在线a毛片免费视频观看| 8x8×在线永久免费视频| 四虎影库久免费视频| 亚洲国产综合精品中文第一| 国产成人精品免费视| 亚洲美女自拍视频| 黄色网址免费观看| 亚洲乱码一二三四区乱码| 岛国av无码免费无禁网站| 国产亚洲精品影视在线| 女人让男人免费桶爽30分钟| 亚洲中文精品久久久久久不卡| 在线jyzzjyzz免费视频| 精品亚洲成a人在线观看| 亚洲国产精品丝袜在线观看| a一级毛片免费高清在线| 亚洲AV综合色区无码一区爱AV| 日本免费污片中国特一级| 亚洲综合色一区二区三区小说| 黄+色+性+人免费| 亚洲欧美日韩久久精品| 亚洲Av无码乱码在线znlu| 久久er国产精品免费观看8| 亚洲AV中文无码乱人伦下载| 手机在线看永久av片免费| 色偷偷尼玛图亚洲综合| 亚洲中文字幕无码一久久区| 人妻无码一区二区三区免费| 亚洲中文字幕一二三四区苍井空| 国产免费人视频在线观看免费| 成人一区二区免费视频| 亚洲熟妇av一区| 免费人成在线观看视频播放| 久久久精品免费视频| 学生妹亚洲一区二区| 三上悠亚亚洲一区高清| 亚洲三级高清免费| 一级人做人a爰免费视频| 亚洲人成电影在线观看网| 亚洲黄黄黄网站在线观看| 99视频精品全部免费观看|