jspinnerの形式はyyyy-MM-dd hh:mm:ss
です。問題はスピナー 'hh'が値 '12'にしか上がらないことです。どのようにして24時間になるのですか?JSpinnerの日付の書式設定
3
A
答えて
12
ます(チュートリアルの基本的内容を完全にあなたの質問に答える)例えば
JSpinnerための2つのものを定義してい
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
public class TimeZoneSpinners {
private final String[] zones = {"Asia/Tokyo", "Asia/Hong_Kong",
"Asia/Calcutta", "Europe/Paris", "Europe/London",
"America/New_York", "America/Los_Angeles"
};
private final JLabel[] labels = new JLabel[zones.length];
private final SimpleDateFormat[] formats = new SimpleDateFormat[zones.length];
private JSpinner spinner;
private SpinnerDateModel model;
private SimpleDateFormat format;
private JPanel panel;
private JFrame frame = new JFrame();
public void makeUI() {
Calendar cal = Calendar.getInstance();
Date date = cal.getTime();
model = new SpinnerDateModel();
model.setValue(date);
spinner = new JSpinner(model);
spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
Date date = (Date) ((JSpinner) e.getSource()).getValue();
for (int i = 0; i < labels.length; i++) {
labels[i].setText(formats[i].format(date));
}
}
});
format = ((JSpinner.DateEditor) spinner.getEditor()).getFormat();
format.setTimeZone(TimeZone.getTimeZone(zones[0]));
format.applyPattern("yyyy-MM-dd HH:mm:ss");
panel = new JPanel(new GridLayout(zones.length, 2, 10, 10));
for (int i = 0; i < zones.length; i++) {
formats[i] = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
formats[i].setTimeZone(TimeZone.getTimeZone(zones[i]));
JLabel label = new JLabel(zones[i]);
labels[i] = new JLabel(formats[i].format(date));
panel.add(label);
panel.add(labels[i]);
}
frame.setLayout(new BorderLayout(10, 10));
frame.add(spinner, BorderLayout.NORTH);
frame.add(panel, BorderLayout.CENTER);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TimeZoneSpinners().makeUI();
}
});
}
}
6
JSpinner.DateEditorコンポーネントは、SimpleDateFormatと同じ書式を使用します。
SimpleDateFormat形式をご覧ください。
あなたのフォーマット文字列は次のようになります。
yyyy-MM-dd HH:mm:ss
+1
明示するには...大文字/小文字は、java.text.SimpleDateFormatと[Joda-Time](http://www.joda.org/joda-time/)の両方の日付時刻フォーマッタで重要です。 'HH'は24時間制、' hh'は12時間制です。 –
1
シンプルなTRY ITを.......
Date datenow = Calendar.getInstance().getTime();
SpinnerDateModel smb = new SpinnerDateModel(datenow, null, null, Calendar.HOUR_OF_DAY);
SPIN_DATE.setModel(smb);
JSpinner.DateEditor d = new JSpinner.DateEditor(SPIN_DATE, "dd-MMM-yyyy");
SPIN_DATE.setEditor(d);
+1
コード例の形式が正しくありません。 –
関連する問題
- 1. laravel 5.2 - 日付の書式設定、炭素と書式::日付
- 2. PHP - 日付形式の書式設定
- 3. 非公式日付の書式設定
- 4. JQGrid日付書式設定
- 5. GWT日付書式設定
- 6. java netbeansのJSpinner日付/時刻形式
- 7. 日付の書式設定の問題
- 8. JavaScriptでの日付の書式設定
- 9. Grailsの書式設定の日付
- 10. javascriptの日付の書式設定
- 11. Thymeleafの日付の書式設定
- 12. モデルの書式設定と日付フィールド
- 13. SAPUI5:日付フィールドの書式設定(Odata)
- 14. Rとas.dateの書式設定日付
- 15. iPhone SDkの日付書式設定
- 16. PHP - 日付書式設定の問題
- 17. jquery datepickerの日付書式設定
- 18. Daylight JavaScriptの書式設定日付
- 19. 日付の書式設定の日付はR
- 20. jqgrid日付ソートと書式設定
- 21. 日付書式設定文字列
- 22. 日付書式設定(jQuery datepicker)
- 23. 日時条件付き書式設定
- 24. Aspose.cells OSの日付形式に関係なく、カスタム日付の書式設定
- 25. PythonでのGmail形式の日付書式設定
- 26. 曜日と週の日付の書式設定を変更
- 27. mysql日付に挿入する書式設定日付
- 28. Oracle日付書式設定NULL日付を00/00/0000
- 29. 日付の列の各日付の条件付き書式設定
- 30. SSRSでの日付書式設定(序数付き)
+1素敵な.......初期化があることを –
注意そのようなスピナーに関連するバグは、[here](http://stackoverflow.com/questions/37444308/jspinner-dateeditor-in-java-not-respecting-timezone-on-initialization)で説明されています。この例で、スピンナーから最初のフォーカスを引き出すコンポーネントを追加すると、スピナーがフォーカスを取得した後にのみタイムゾーンの書式設定が適用されます。 – predi