java日付処理二(Timestamp)

5598 ワード

いくつかのデータベースとの接続時の日付処理を書くには、pstmt.setDate()のタイプはjava.sql.Dateのタイプです。このような規範に合ったタイプは実は時を分秒でデータベースに保存していません。だから、アクセス時はsetTimestamp()またはgetTimestamp()を使うべきです。
     整理一:
一、日付データをデータベースに保存する
     java.sql.Dateは日付データだけを保存します。時間データは保存しません。      // 時間データが無くなります。      preparedSttement.set Date(1、new java.sql.Date(date.getTime()));     //このように処理してもいいです。     preparedSttement.set Timestamp(1、new Timestamp(new java.util.Date().getTime()));
二、データベースからデータを取る    //完全なデータがほしいです。日付と時間を含めて、このようにしてもいいです。    java.util.Date d=resultSet.get Timestamp(1)     //このように処理するのがもっと適当で、潜在的なTimestamp問題を避けることができます。     java.util.Date d=new java.util.Date(result Set.getTimestamp(1).getTime();注:     データベースに格納するときは、java.util.Dateタイプを受信し、getTime()方法でそのDateオブジェクトを表すlong値を得て、このlong値でTimestampオブジェクトを作成してデータベースに格納することができます。
    データベースから取る時は、先にTimestampを入手して彼のgetTime()方法でlong値を得て、このlong値でjava.util.Dateオブジェクトを構築して、このDateオブジェクトに対して操作することができます。例えばnew SimpleDateFormat(「yyyyy-M-dd HH:mm:ss」).format(Date)またはformat(Timestamp)でもいいです。  整理二:   Timestampで日付時間を記録するのは便利ですが、表示する時は小さい数桁の後のミリ秒は必要ないので、Steringに変換する時にフォーマットを再定義する必要があります。          TimestampがStringに変換される: 
[java]
view plin
copy
print

SimpleDateFormat df = new SimpleDateFormat("yyy-M-dd" HH:mm:ss";;   
  •   
  • //書式を定義し、ミリ秒を表示しません。    
  •     
  • Timestamp now = new Timestamp(System.current TimeMillis();   
  •   
  • //システムの現在時間の取得    
  •   
  • String str = df.format(now)       
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    
    
    
    //    ,      
    
      
    
    Timestamp now = new Timestamp(System.currentTimeMillis()); 
    
    
    
    //         
    
    
    
    String str = df.format(now);     
             StringがTimestampに変換される: 
    [java]
    view plin
    copy
    print

    SimpleDateFormat df = new SimpleDateFormat(「yyy-M-ddHH:mm:ss」);   
  •   
  • String 時間 = df.format(new Date();   
  •   
  • Timestamp ts。 = Timestamp.valueOf(time);     
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss"); 
    
    
    
    String time = df.format(new Date()); 
    
    
    
    Timestamp ts = Timestamp.valueOf(time);   
    整理三:   ResultSetでは、私たちがよく使うset Dateまたはget Dateのデータの種類はjava.sql.Dateですが、普段のjavaプログラムではjava.util.Dateを使うのが一般的です。したがって、DAO層ではしばしばこの2つのデータタイプの相互変換に遭遇します。両者の関係はjava.lang.Objectである。     |     +---java.util.Date             |             +----java.sql.Date相互変換1.getTime()関数を使用する。    これらの2つのクラスは、対応するミリ秒数(longタイプ)を返すためのgetTime()関数を提供する。この関数を使って変換が可能です。    java.util.Date utilDate=new java.util.Date(sql Date.getTime);   // sql->util    java.sql.Date sql Date=new java.sql.Date(utilDate.getTime);   // utill->sql 2.SimpleDateFormat類を使って変換SimpleDateFormatを実現するのは国別敏感な方式でデータをフォーマットし分析する具体的なクラスです。フォーマット、文法分析、標準化ができます。SimpleDateFormat dateFormat=new SimpleDateFormate("yyy-M-dd HH:mm:ss")java.util.Date utilDate=dateFormat.parse(sqlDate.toString);3.直接変換はjava.sql.Dateがjava.util.Dateから継承されたものですので、直接使用できます。4.別種で日付を取得する方法:
    [java]
    view plin
    copy
    print

    SimpleDateFormat sy=new SimpleDateFormat("yyy")   
  •   
  • SimpleDateFormat sm=new SimpleDateFormat(「MM」);   
  •   
  • SimpleDateFormat sd=new SimpleDateFormat("dd")   
  • String sysear=sy.format;   
  • String smon=sm.format;   
  • String sday=sd.format;   
  •   
  •    
  • SimpleDateFormat sy=new SimpleDateFormat("yyyy"); 
    
    
    
    SimpleDateFormat sm=new SimpleDateFormat("MM"); 
    
    
    
    SimpleDateFormat sd=new SimpleDateFormat("dd"); 
    
    String syear=sy.format(date); 
    
    String smon=sm.format(date); 
    
    String sday=sd.format(date); 
    
    
    
     
    ps:1.java.util.Date類のgetYear()は1900を加えて実際の値を得ることができます。get Month()は1を加えます。         2.文字列からDateへの変換:Date.valueOf(str)、カバンを引く時はsqlのDateバッグを引いてください。utilのDateバッグではありません。         3.文字列からTimestampへの変換Timestamp=Timestamp.valueOf(time)