<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

    主站蜘蛛池模板: 色偷偷噜噜噜亚洲男人| 亚洲av无码久久忘忧草| 免费在线人人电影网| 国产男女猛烈无遮档免费视频网站| 亚洲中文字幕乱码一区| 搡女人真爽免费视频大全| 亚洲欧好州第一的日产suv| 四色在线精品免费观看| 精品无码专区亚洲| 免费a级毛片无码av| 一级特级女人18毛片免费视频| 久久久久国产亚洲AV麻豆 | 国产免费福利体检区久久| 亚洲欧洲一区二区三区| 花蝴蝶免费视频在线观看高清版| 亚洲av一综合av一区| 最近免费视频中文字幕大全| 亚洲1区1区3区4区产品乱码芒果| 女人张开腿等男人桶免费视频| 99亚洲乱人伦aⅴ精品| 国产亚洲成人久久| 在免费jizzjizz在线播| 亚洲日韩亚洲另类激情文学| 亚洲高清免费视频| 污污网站免费观看| 亚洲综合无码一区二区痴汉| 亚洲成人影院在线观看| 伊人久久免费视频| 亚洲精品无码高潮喷水A片软| 亚洲偷自拍拍综合网| 久久国产精品免费观看| 亚洲男人的天堂久久精品| 亚洲国产精品日韩专区AV| 一级毛片免费视频| 国产成人精品日本亚洲语音| 亚洲AV永久纯肉无码精品动漫| 无码人妻一区二区三区免费手机| 乱淫片免费影院观看| 亚洲最大免费视频网| 亚洲成?v人片天堂网无码| 久久国产乱子免费精品|