0

私はsqliteで日付を処理しようとしていますが、それらを比較する方法が必要です。私の問題は、セットアップ日をデータベースに保存しようとすると、新しい値が表示されることです。ただし、それらはそれほど違いはありません-ミリ秒単位です。

コードは次のとおりです。

Date today = new Date();
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);

定数値を取得するにはどうすればよいですか?

PS 1000で割って保存することもできましたが、挿入ロジックをカプセル化するgreenDaoフレームワークを使用しています。

ありがとう。

4

2 に答える 2

1

試す:

Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR, 0);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
now.set(Calendar.MILLISECOND, 0);

date = now.getTime();

new Date() は、System.currentTimeMillis() によって返された現在の時刻を割り当てます。つまり、コードでミリ秒をリセットしていません。

于 2012-10-15T14:44:37.780 に答える
0

Java Date roundingを見たいと思うかもしれません

基本的に、答えはApache commons-lang DataUtilsの使用を示唆しています。http://commons.apache.org/lang/api-3.1/index.htmlおよび特に truncate メソッドを参照してください。

public static Date truncate(Date date,int フィールド)

Truncate this date, leaving the field specified as the most significant field.

For example, if you had the datetime of 28 Mar 2002 13:45:01.231, if 

HOUR を渡すと、2002 年 3 月 28 日 13:00:00.000 が返されます。これを MONTH で渡すと、2002 年 3 月 1 日 0:00:00.000 が返されます。

于 2012-10-15T14:51:35.883 に答える