106

2007 年 9 月 23 日のタイムスタンプを作成するにはどうすればよいですか?

4

8 に答える 8

159

によってTimestamp、私はあなたが意味すると推測しますjava.sql.Timestamp。このクラスには、long引数を受け入れるコンストラクターがあることがわかります。DateFormatクラスを使用してこれを解析できます。

DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
Date date = dateFormat.parse("23/09/2007");
long time = date.getTime();
new Timestamp(time);
于 2009-06-10T11:19:54.707 に答える
130

これはどうですか?

java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf("2007-09-23 10:10:10.0");
于 2009-06-10T11:38:26.713 に答える
18

タイムスタンプって何?Unix エポックからのミリ秒を意味する場合:

GregorianCalendar cal = new GregorianCalendar(2007, 9 - 1, 23);
long millis = cal.getTimeInMillis();

実際の java.sql.Timestamp オブジェクトが必要な場合:

Timestamp ts = new Timestamp(millis);
于 2009-06-10T11:26:30.683 に答える
14
于 2015-10-27T08:44:13.467 に答える
6

次のこともできます。

// untested
Calendar cal = GregorianCalendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 23);// I might have the wrong Calendar constant...
cal.set(Calendar.MONTH, 8);// -1 as month is zero-based
cal.set(Calendar.YEAR, 2009);
Timestamp tstamp = new Timestamp(cal.getTimeInMillis());
于 2009-06-10T11:41:33.663 に答える
4

APIによると、年、月などを受け入れるコンストラクターは非推奨です。代わりに、long を受け入れるコンストラクターを使用する必要があります。Calendar実装を使用して、必要な日付を作成し、時間表現に long としてアクセスできます。たとえば、 getTimeInMillisメソッドを使用できます。

于 2009-06-10T11:23:08.710 に答える
1

完全を期すために、Joda-Timeバージョン 2.5 とそのDateTimeクラスを使用したソリューションも:

new Timestamp(new DateTime(2007, 9, 23, 0, 0, DateTimeZone.forID( "America/Montreal" )).getMillis())
于 2014-10-13T07:39:48.413 に答える
-1

より一般的な答えは importであり、現在の日付に等しい値をjava.util.Date設定する必要がある場合は、単に に等しく設定します。timestampnew Date()

于 2012-11-28T02:02:26.950 に答える