在工作上莫名遇到此bug,在努力爬文後,發覺有兩種寫法

兩種方法各有優缺,不過不可以寫在一起,因為import java.util.Date 和 import java.sql.Date 會衝突到同名字


1.SimpleDateFormat

對我們來說這種方法並不陌生,不過噴錯機率也高嚇人,原因在於String千變萬化

結果圖:

sTime

 

程式碼:

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class sTime {
     public static void main(String[] args) throws Exception {

          DateFormat f = new SimpleDateFormat("yyyy/mm/dd");

          System.out.println("================測試2015/09/19=================");
          String d = "2015/09/19";
          Date date = f.parse(d);
          System.out.println(date);
          System.out.println("================測試2015/09/19=================");

          System.out.println();
          System.out.println();

          DateFormat sdf = new SimpleDateFormat("HH:mm:ss");

          System.out.println("================測試15:30:10=================");
          String time1 = "15:30:10";
          Date date1 = sdf.parse(time1);
          System.out.println(date1);
          System.out.println("================測試15:30:10=================");

          System.out.println();
          System.out.println();

          System.out.println("================測試05:00 PM=================");
          String time2 = "05:00 PM";
          Date date2 = sdf.parse((getTime(time2)).trim());
          System.out.println(date2);
          System.out.println("================測試05:00 PM=================");
    }
    public static String getTime(String input) {
         char[] chars = input.toCharArray();
         if (chars[6] == 'P'){
             chars[0] = (char)((int)chars[0]+1);
             chars[1] = (char)((int)chars[1]+2);
         }
         chars[5] = ':';
         chars[6] = '0';
         chars[7] = '0';
         return new String(chars);
    }
}

convert string to time參考網址:http://www.java2s.com/Code/Java/Data-Type/Convertstringoftimetotimeobject.htm


2.Time.valueOf()

這種方法格式是依據SQL,不能隨意,不過可以保證存入資料庫不會出錯

結果圖:

timeformat

 

程式碼:

import java.sql.*; //Date,Time

public class timeformat {
     public static void main(String[] args) {

          System.out.println("================測試2015-09-19=================");
          String d = "2015-09-19"; //只能"yyyy-mm-dd"
          Date date = Date.valueOf(d);
          System.out.println(date);
          System.out.println("================測試2015-09-19=================");

          System.out.println();
          System.out.println();

          System.out.println("================測試13:48:00=================");
          String t = "13:48:00"; //只能"HH:mm:ss"
          Time time1 = Time.valueOf(t);
          System.out.println(time1);
          System.out.println("================測試13:48:00=================");

          System.out.println();
          System.out.println();

          System.out.println("================測試03:48 PM=================");
          String text = "03:48 PM";
          System.out.println(getTime(text));
          Time time2 = Time.valueOf((getTime(text)).trim());
          System.out.println(time2);
          System.out.println("================測試03:48 PM=================");

    }

    public static String getTime(String input) {
         char[] chars = input.toCharArray();
         if (chars[6] == 'P'){
             chars[0] = (char)((int)chars[0]+1);
             chars[1] = (char)((int)chars[1]+2);
         }
         chars[5] = ':';
         chars[6] = '0';
         chars[7] = '0';
         return new String(chars);
    }
}

convert string in time參考網址:http://stackoverflow.com/questions/5451016/convert-string-in-time-to-time-object-without-date

arrow
arrow
    全站熱搜

    o迷苓o 發表在 痞客邦 留言(0) 人氣()