2017-03-14 69 views
0

JSpinnerを使用して時間(時間は「HH:mm」パターン)を設定しました。実際の日付をJSpinnerから取得する

私は以下のようにするJSpinnerを初期化します。

JSpinner spinner = new JSpinner(); 
spinner.setModel(new SpinnerDateModel()); 
JSpinner.DateEditor timeEditor = new JSpinner.DateEditor(spinner, "HH:mm"); 
spinner.setEditor(timeEditor); 
spinner.setValue(new Date()); 

そして、私は値を変更せずに値

​​

を得るとき - 私は正しい値Tue Mar 14 14:46:41 CET 2017を得るが、私はそれの復帰ダウン1分を変更したとき「epoche」の日付はThu Jan 01 14:45:00 CET 1970となります。 "Epoche"の日付は、時間(時および分)はOKですが、年月日が間違っていることを意味します。

実際の日付を常に取得するようにJSpinnerを初期化する方法spinner.getValue()? - ないepoche私は

Date spinnerValue = (Date) spinner.getValue(); 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); 
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy/MMM/dd"); 
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MMM/dd HH:mm:ss"); 
Date actualDate = sdf2.parse(sdf1.format(new Date()) + " " + sdf.format(spinnerValue), new ParsePosition(0)); 

以下のように解決策を見つけた日

EDIT

...それはよさそうだしていない、私はそれがより小さく、よりスマートに書きたいと思います。

+0

いいえ。私はJSpinner – ACz

答えて

0

設定値と可能な値の範囲はバインドされていません。

Set step for a DateEditor in a JSpinner

あなたはスピナーの最小値と最大値をいただきましたので、スピナーは、次の目盛りに行くときスピナーティックを指しているとどのくらいの時間が残っているものを知っていただきまし定義する必要があります。

最初のgetValueコマンドは、自分で初期化された以前のセットDate()を返します。

さらに値はDateEditorによって生成され、この値は自分でも初期化する必要があります。そうでなければ、このDateEditorからデフォルト値を取得します。

+0

から完全な日付(予定日)を取得する方法を尋ねた。だから、スピナーから値を変更して正しい日付を得るには? – ACz

+0

最小値を選択したときにスピナーが指し示す日付(左)?今日、昨日、1970年?そして、時、分、年、ミリ秒を変化させるチックです... –

+0

パターンが定義するように、私は時間と分のみを変更しました。しかし、私は時間と明かりが変わった完全な日付を取得する必要があります。私は自分の投稿を編集し、私が達成したいことを確認します。 – ACz

関連する問題