Java JFormattedTextfield форматирование времени - PullRequest
2 голосов
/ 28 февраля 2012

У меня возникли проблемы с использованием времени в моем коде:

txtDauer = new JFormattedTextField();
txtDauer.setFormatterFactory(new DefaultFormatterFactory(
    new DateFormatter(DateFormat.getTimeInstance())));

Когда я использую setValue (0) для указанного выше поля FormattedText, текстовое поле показывает 01:00:00 вместо 00:00:00.

Та же проблема возникает и в другой строке кода с этим методом:

public static String convertLongToString(Long time) {
    String strtime = new SimpleDateFormat("HH:mm:ss").format(time);
    return strtime;
}

Используя этот метод с "0", он возвращает strtime = "01:00:00".

Ответы [ 2 ]

2 голосов
/ 28 февраля 2012

Проблема в TimeZone , часовой пояс вашего компьютера по умолчанию - GMT +1.

Решением является установка GMT на +0:

DateFormat df = new SimpleDateFormat("HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("GMT"));

Запуск и предварительный просмотр.

1 голос
/ 28 февраля 2012

Для Date, Date & Time или Time используйте JSpinner с SpinnerDateModel , пример использования SimpleDateFormat

...