一:各類Date之間的轉換方法java
public class TimeTest { public static void main(String[] args) { Date date = new Date(); // 1、獲取當前系統時間和日期並格式化輸出: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設置日期格式 String dateTime = df.format(date); // Formats a Date into a date/time string. System.out.println(dateTime); // 2017-09-24 23:33:20 // 2、Date轉換爲Datetime long longTime = date.getTime(); Timestamp timestamp = new Timestamp(longTime); System.out.println(timestamp); // 2017-09-24 23:33:20.655 // 3、String轉換爲Date String strTime = "2017-09-24 12:00:01"; SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = null; try { date1 = sdf1.parse(strTime); } catch (ParseException e) { e.printStackTrace(); } System.out.println(date1); // Sun Sep 24 12:00:01 CST 2017 // 4、Date轉換爲String Date date2 = new Date(); DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String str1 = format.format(date2); System.out.println(str1); // 2017-09-24 // 5、String轉化爲java.sql.Date String str2 = "2017-12-01"; SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd"); java.sql.Date sDate = null; try { java.util.Date date3 = sdf2.parse(str2); sDate = new java.sql.Date(date3.getTime()); } catch (ParseException e) { e.printStackTrace(); } System.out.println(sDate); // 2017-12-01 } }
二:MySQL數據庫中的Date,DateTime,TimeStamp和Time類型mysql
DATETIME類型用在你須要同時包含日期和時間信息的值時。MySQL檢索而且以'YYYY-MM-DD HH:MM:SS'格式顯示DATETIME值,支持的範圍是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。(「支持」意味着儘管更早的值可能工做,但不能保證他們能夠。) sql
DATE類型用在你僅須要日期值時,沒有時間部分。MySQL檢索而且以'YYYY-MM-DD'格式顯示DATE值,支持的範圍是'1000-01-01'到'9999-12-31'。數據庫
TIMESTAMP列類型提供一種類型,你可使用它自動地用當前的日期和時間標記INSERT或UPDATE的操做。服務器
TIME數據類型表示一天中的時間。MySQL檢索而且以"HH:MM:SS"格式顯示TIME值。支持的範圍是'00:00:00'到'23:59:59'。spa
建立表(MySql)orm
datetime和timestamp的區別:
1.datetime 的日期範圍比較大;若是有1970年之前的數據仍是要用datetime.可是timestamp 所佔存儲空間比較小。
2.timestamp 類型的列還有個特性:默認狀況下,在 insert, update 數據時,timestamp 列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。blog
3.timestamp比較受時區timezone的影響以及MYSQL版本和服務器的SQL MODE的影響.
使用一個經常使用的格式集的任何一個,你能夠指定DATETIME、DATE和TIMESTAMP值:
'YYYY-MM-DD HH:MM:SS'或'YY-MM-DD HH:MM:SS'格式的一個字符串,容許一種"寬鬆"的語法:任何標點可用做在日期部分和時間部分之間的分隔符。例如,'98-12-31 11:30:45'、'98.12.31 11+30+45'、'98/12/31 11*30*45'和'98@12@31 11^30^45'是等價的。字符串
三:mysql中存入timestamp 類型時間須要java將時間轉爲其數據庫對應的數據格式 get
Date date=new Date(); SimpleDateFormat temp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String date1=temp.format(date); Date date2=temp.parse(date1);