在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 使用SimpleDateFormat 字符串轉(zhuǎn)日期 如何保證健壯性?

使用SimpleDateFormat 字符串轉(zhuǎn)日期 如何保證健壯性?

使用SimpleDateFormat時(shí)如果所匹配的表達(dá)式不對(duì)那么就會(huì)拋出異常.

比如這樣是正確的:

      String date = "2012-2-3";
      SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
      try {
        System.out.println(simple.parse(date));

這樣是失敗的:

      String date = "2012-2-3";
      SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
      try {
        System.out.println(simple.parse(date));

但是有時(shí)候傳來(lái)的是yyyy-MM-dd HH:mm:ss這種時(shí)間格式
有時(shí)候傳來(lái)的是yyyy-MM-dd這種時(shí)間格式
我并不能事先知道傳來(lái)的是哪種格式
如何讓第二種依然能夠解析出來(lái),后續(xù)的時(shí)分秒會(huì)被初始化 00:00:00

回答
編輯回答
護(hù)她命

我并不能事先知道傳來(lái)的是哪種格式

那你必須知道,要么就按照其他人回答的那樣猜(當(dāng)然會(huì)猜錯(cuò))。

2017年10月18日 14:36
編輯回答
心癌

你可以先用一種SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");,不對(duì)的話(huà)拋出異常,你在catch中處理,使用另一種 SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");在進(jìn)行處理。這樣兩種都能進(jìn)行處理。

2017年10月12日 11:26
編輯回答
墨小羽

可以參考下JAVA8的對(duì)于時(shí)間和日期的api處理 . 即可以兼容也能解決線(xiàn)程不安全的問(wèn)題 .

2018年9月1日 05:38
編輯回答
孤客

輸入類(lèi)型從String轉(zhuǎn)成時(shí)間類(lèi)型,比如Date

2017年9月9日 02:13
編輯回答
久愛(ài)她

這個(gè)只能預(yù)先初始化好,可以做個(gè)map,同時(shí)還建議考慮并非情況下,SimpleDateFormat沒(méi)記錯(cuò)的話(huà)好像是線(xiàn)程不安全的

2017年6月16日 16:02
編輯回答
冷咖啡
//        傳入的字符串
        String dateStr = "2012-2-3 12:31:33";
//        根據(jù)長(zhǎng)度轉(zhuǎn)換一下 
        String parseDate = dateStr.length()>10?dateStr:dateStr+" 00:00:00";
        Date date = null;
        try {
            date = new SimpleDateFormat("yyyy-M-d HH:mm:ss").parse(parseDate);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(date);

2018年3月4日 18:41