java 字串轉date 格式轉換
阿新 • • 發佈:2020-12-22
import org.springframework.util.StringUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.regex.Pattern; public class test { public static void main(String[] args) { String test1 = "2019/06/56"; String test2 = "389242942424"; String test3 = "2019.06.21"; String test4 = "2019/06/21"; try{ System.out.println(transferFormat(test1)); } catch(ParseException e){ System.out.println("請輸入正確的格式"); } try{ System.out.println(transferFormat(test2)); } catch(ParseException e){ System.out.println("請輸入正確的格式"); } try{ System.out.println(transferFormat(test3)); } catch(ParseException e){ System.out.println("請輸入正確的格式"); } try{ System.out.println(transferFormat(test4)); } catch(ParseException e){ System.out.println("請輸入正確的格式"); } } /** * 校驗字串是否為 2020/10/20 格式 * @param mes 字串入參 * @return true:表示校驗通過 false:表示校驗失敗 */ public static boolean isRequestFormat(String mes){ if(StringUtils.isEmpty(mes)){ return false; } String format = "([0-9]{4})/(0[1-9]|1[012])/(0[1-9]|[12][0-9]|3[01])"; return Pattern.matches(format,mes); } /** * 將 2020/10/20 格式的字串 轉為 2020/10/20 00:00:00 格式的字串 * @param mes 傳入的字串 * @return 返回的字串 */ public static String transferFormat(String mes) throws ParseException { if(!isRequestFormat(mes)){ return "請輸入正確的格式"; } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd"); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); Date date = simpleDateFormat.parse(mes); return simpleDateFormat1.format(date); } }