我們在數據庫中存儲日期時間時,通常建議存儲為長整型數字,既有利於數據優化,也有利於操作日期數據時的統一。這就需要用到日期、字符串即長整型數據之間的互相轉換。我們接下來就解決這樣的問題。
1.將長整型數字轉換為日期格式的字符串
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 /** 5 * 日期/字符串/長整型數字間的互轉 6 */ 7 public class Test1 { 8 // 短日期格式 9 public static String DATE_FORMAT = "yyyy-MM-dd"; 10 // 長日期格式 11 public static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; 12 public static void main(String[] args) { 13 System.out.println(System.currentTimeMillis()); 14 System.out.println(test1(System.currentTimeMillis(), DATE_FORMAT)); 15 } 16 //將長整型數字轉換為日期格式的字符串 17 static String test1(long time, String format) { 18 SimpleDateFormat dateFormat = new SimpleDateFormat(format); 19 Date date = new Date(time); 20 return dateFormat.format(date); 21 } 22 }
上述代碼執行后輸出結果如下:
1517309922118 2018-01-30
2.將日期格式的字符串轉換為長整型
1 import java.text.ParseException; 2 import java.text.SimpleDateFormat; 3 import java.util.Date; 4 /** 5 * 日期/字符串/長整型數字間的互轉 6 */ 7 public class Test1 { 8 // 短日期格式 9 public static String DATE_FORMAT = "yyyy-MM-dd"; 10 // 長日期格式 11 public static String TIME_FORMAT = "yyyy-MM-dd HH:mm:ss"; 12 public static void main(String[] args) { 13 // System.out.println(System.currentTimeMillis()); 14 // System.out.println(test1(System.currentTimeMillis(), DATE_FORMAT)); 15 try { 16 long time = test2(test1(System.currentTimeMillis(), DATE_FORMAT), DATE_FORMAT); 17 System.out.println(time+""); 18 } catch (ParseException e) { 19 e.printStackTrace(); 20 } 21 } 22 //將長整型數字轉換為日期格式的字符串 23 static String test1(long time, String format) { 24 SimpleDateFormat dateFormat = new SimpleDateFormat(format); 25 Date date = new Date(time); 26 return dateFormat.format(date); 27 } 28 //將日期格式的字符串轉換為長整型 29 static long test2(String date,String format) throws ParseException { 30 SimpleDateFormat dateFormat = new SimpleDateFormat(format); 31 return dateFormat.parse(date).getTime(); 32 } 33 }
上述代碼執行結果如下:
1517241600000