1. 程式人生 > 實用技巧 >java 字串轉date 格式轉換

java 字串轉date 格式轉換

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);
    }
}