<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ⅴ网站 | 亚洲日本VA午夜在线电影| 国产成人精品免费视频软件| 久久免费香蕉视频| 亚洲一卡2卡3卡4卡国产网站 | 久久精品网站免费观看| 免费人成网站永久| 亚洲综合精品香蕉久久网97| 成人毛片免费观看视频| 国产精品成人69XXX免费视频| 亚洲综合图片小说区热久久| 四虎永久在线免费观看| 性xxxx视频免费播放直播| 亚洲国产成人精品无码区二本 | 亚洲国产a∨无码中文777| 国产精品无码免费播放| 日本三级在线观看免费| 亚洲色大成网站www久久九 | 免费手机在线看片| 亚洲精品在线免费观看视频| yy6080久久亚洲精品| 永久免费视频网站在线观看| 无套内射无矿码免费看黄| 亚洲精品成人久久| 中国亚洲女人69内射少妇| 成全视频在线观看免费高清动漫视频下载 | 在线免费观看国产| 视频一区在线免费观看| 亚洲天堂一区二区| 亚洲麻豆精品国偷自产在线91| 亚洲一级免费毛片| 最近国语视频在线观看免费播放| 亚洲日产乱码一二三区别| 亚洲一本综合久久| 中文字幕亚洲专区| 免费在线观看亚洲| 在线观看成人免费| 国产成人精品免费视频大全麻豆| 精品无码国产污污污免费网站国产|