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)
[java]
view plin
copy
print
?
SimpleDateFormat df = new SimpleDateFormat(「yyy-M-ddHH:mm:ss」); String 時間 = df.format(new Date(); Timestamp ts。 = Timestamp.valueOf(time);
[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;
整理一:
一、日付データをデータベースに保存する
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
?
SimpleDateFormat df = new SimpleDateFormat("yyy-M-dd" HH:mm:ss";;
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
?
SimpleDateFormat df = new SimpleDateFormat(「yyy-M-ddHH:mm:ss」);
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
?
SimpleDateFormat sy=new SimpleDateFormat("yyy")
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)