java和數據庫中日期類型的常見用法


(1)java中日期類型:Date、Timestamp
(2)數據庫中:Date、Timestamp
(3)字符串和Date之間的格式化轉換:
    SimpleDateFormat類方法:
  format():把String格式化為Date;
  parse():把String格式化為Date;

如果需要把Date格式化,最后仍然要轉換成Date類型,方法:
  先用format,再用parse,最終返回Date
(4)java.util.Date timeDate = dateFormat.parse(dateString);//util類型
  java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//java.sql.Timestamp類
  該Timestamp類型參數可以存放到Date類型參數的方法中(Timestamp是java.util.Date的子類)
(5)數據庫:
  MySQL使用的日期格式(摘自mysql必知必會):無論你什么時候指定一個日期,不管是插入或更新表值還是用WHERE子句進行過濾,日期必須為格式yyyy-MM-dd。雖然其他的日期格式可能也行,但這是首選的日期格式,因為它排除了多義性。時間類型常用Date和timestamp
  由於時間類型的轉換,數據庫中存放date類型,實體類使用String存儲,操作起來更方便
(6)Servlet中sql語句保存Date類型,拼sql時,傳入參數為原始的Date類型,可能會出錯,格式化后或者轉換成java.sql.Timestamp類型則正確
(7)數據庫中時間增加,還有其他函數,如:
  根據購車時間和排量查詢所屬車型的id:
  SELECT * FROM cars_info
  WHERE   '2008-10-01 00:00:00'>productiondatess AND '2008-10-01 00:00:00'
  AND enginemodel='N52B30'  其中時間去掉" 00:00:00"也可以查詢
(8)從數據庫中讀取時間數據出來

  java.util.Date date;
  Timestamp timestamp = resultSet.getTimestamp(i);
  if (timestamp != null)
     date = new java.util.Date(timestamp.getTime()));

 ==========

 

Java與數據庫對應的日期類型 - CSDN博客
http://blog.csdn.net/qq_23052951/article/details/51627371

....|__java.util.Date 
..........|__java.sql.Date /java.sql.Timestamp  /java.sql.Time 
  【父類】java.util.Date日期格式為:年月日時分秒 
  【子類】java.sql.Date日期格式為:年月日[只存儲日期數據不存儲時間數據] 
  【子類】java.sql.Time日期格式為:時分秒 
  【子類】java.sql.Timestamp日期格式為:年月日時分秒納秒(毫微秒) 
針對不同的數據庫選用不同的日期類型 
  ·Oracle的Date類型,只需要年月日,選擇使用java.sql.Date類型 
  ·MS Sqlserver和Mysql數據庫的DateTime類型,需要年月日時分秒,選擇java.sql.Timestamp類型 
------------------------------------------ 
四種對象內部均使用系統時間作為標准數據 
  ·系統時間:自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數,即格林尼治標准時間(GMT) 
  ·本地時間:根據時區不同打印出來的時間[當時區為GMT+0時,系統時間與本地時間相同] 
我們使用的是以本地時間為參考標准的 
------------------------------------------ 
生成日期對象 
方法一: 
    除了父類,三個子類均可通過給其發送valueOf()消息,生成所需格式的對象。 
    java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20"); 
    java.sql.Time time = java.sql.Time.valueOf("13:44:53"); 
    java.sql.Timestamp time = java.sql.Timestamp.valueOf("2010-08-20 14:06:27.186"); 
方法二: 
    ·java.util.Date——>java.sql.Date 
      new java.sql.Date(new java.util.Date().getTime()); 
      new java.util.Date(new java.sql.Date().getTime());//此處IDE報錯 
    ·java.util.Date——>java.sql.Timestamp 
      new java.sql.Timestamp(new java.util.Date().getTime());//此處IDE報錯 
    ·java.util.Date——>java.sql.Time 
      new java.sql.Time(new java.util.Date().getTime()); 
    ·Timestamp timestamp  = new Timestamp(System.currentTimeMillis()); 
------------------------------------------ 
我們可以使用DateFormat處理字符串來定義時間日期的格式 
注:String都是先轉換為java.util.Date,然后再轉換成所需的格式 
Calendar 
    Calendar calendar=Calendar.getInstance(); 
    //獲得當前時間,聲明時間變量 
    int year = calendar.get(Calendar.YEAR); 
    int month = calendar.get(Calendar.MONTH); 
    month = month+1; //[0,11] 
    int date = calendar.get(Calendar.DATE); 
    String today = ""+year+"-"+month+"-"+date+""; 
    .................................. 
    String to Date[java.sql.Date] 
    String to Time[java.sql.Timestamp] 
    .................................. 
DateFormat dateFormat; 
    dateFormat = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH); 
    //dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS", Locale.ENGLISH);//設定格式 
    dateFormat.setLenient(false); 
    java.util.Date timeDate = dateFormat.parse(dateString);//util類型 
    java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql類型 
    // java.sql.Timestamp dateTime = new java.sql.Timestamp 
    (timeDate.getTime());//Timestamp類型 

public class DateTest  {   
    public static void main(String[] args) throws ParseException{   
        try{   
             String dateString = "2010-08-20 12:00:00.125";   
             DateFormat dateFormat;   
             dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//設定格式   
             dateFormat.setLenient(false);   
             java.util.Date timeDate = dateFormat.parse(dateString);//util類型   
             java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp類型,timeDate.getTime()返回一個long型   
             System.out.println(dateTime);   
        }catch(Exception ex){   
            ex.printStackTrace();   
        }        
    }   
}

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM