よくある質問だと思いjava.util.Date
ますが、MySQL にオブジェクトを保存する方法が見つかりませんでした。
出来ますか?この正確な時間をMySQLデータベースに保存する必要があるため、どのような解決策をお勧めしますか。
よくある質問だと思いjava.util.Date
ますが、MySQL にオブジェクトを保存する方法が見つかりませんでした。
出来ますか?この正確な時間をMySQLデータベースに保存する必要があるため、どのような解決策をお勧めしますか。
public static void main(String[] args) {
Date date = new Date() ;
System.out.println(date);
// or use calendar
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, 2013);
cal.set(Calendar.MONTH, 1);
cal.set(Calendar.DATE, 13);
cal.set(Calendar.HOUR, 23);
cal.set(Calendar.MINUTE, 52);
cal.set(Calendar.SECOND, 10);
date = cal.getTime();
}
あなたにあげるSun Jan 13 23:48:59 IST 2013
SimpleDateFormat を使用できます。
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
System.out.println(dateFormat.format(new Date()));
私が推測するように、文字列を日付オブジェクトに変換したい場合でも、SimpleDateFormat を使用できます。
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");
Date d = dateFormat.parse("2011-02-21 23:22:10");
ほとんどの場合、Date
オブジェクトを使用しないでくださいjava.util.Dat
。e は不変ではありません。long
日付をutc時間として保存するプリミティブを使用する方がはるかに優れています。(1970 年 1 月 1 日 UT の午前 0 時からのミリ秒数) これは、現地時間、昼間の節約とは無関係です。等
一時オブジェクトからlong
メソッドを介して値を取得します。(または から直接的または間接的に)getTimestamp()
Date
GregorianCalendar
長い utc タイムスタンプから、必要な Date オブジェクトを (DB などで) 簡単に作成できます。
現地時間が必要な場合、事態はさらに複雑になります。そのため、表示 (UI など) の目的でのみ現地時間を使用し、表示の直前に現地時間に変換することをお勧めします。Date を現地時間で保存しない方がよい)
Calendarクラスを見てください。
Calendar.getInstance()
インスタンスを取得するために呼び出すだけget(Calendar.YEAR);
で、年、get(Calendar.DAY);
日などを取得するために使用できます。
メソッドを使用して、同様の方法で時刻を設定できますset()
。
これを日付オブジェクトに変換する場合はgetTime();
メソッドを使用し、日付を文字列にフォーマットする場合は を参照してくださいSimpleDateFormat
。
一般的な例として:
Calendar c = Calendar.getInstance();
c.set(2012, 11, 1, 10, 10); //Sets c to 10:10, 1st December 2012
Date date = c.getTime(); //If you want the calendar object as a date
int day = c.get(Calendar.DAY); //Get the current day in the calendar as an integer
String format = new SimpleDateFormat("HH:mm:ss DD-MM-YYYY").format(c.getTime()); //Print date as a string
SimpleDateFormat
次のように、オブジェクトを使用して日付を解析することもできます。
Date d = new SimpleDateFormat("HH:mm:ss DD-MM-YYYY").parse("10:10:00 01-12-12");
複数回使用している場合はSimpleDateFormat
、再作成し続けるのではなく、別の変数として使用することをお勧めします。
class Date {
int year;
int month;
int day;
int hour;
int minute;
public Date(int year, int month, int day, int hour, int minute){
this.year = year;
this.month = month;
this.day = day;
this.hour = hour;
this.minute = minute;
}
}
これで、これのインスタンスを作成して渡すことができます。さらに、ゲッター/セッターまたは toString 関数を作成できます。