Игнорировать DST (Dayligt Saving Time) при форматировании даты - PullRequest
1 голос
/ 24 ноября 2011

У меня есть это приложение, которое сравнивает текущую дату с проанализированной датой из XML-файла:

Date timeDiff = new Date(date.getTime() - new Date().getTime());

Проблема заключается в том, что когда я выводю переменную timeDiff в виде строки через simpleDateFormat, переход на летнее времясчет, который добавляет дополнительный час.Это портит мой вывод.

Есть ли способ заставить SimpleDateFormat игнорировать DST?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 24 ноября 2011

Вы вычитаете один раз из другого, чтобы получить длительность в миллисекундах. Вы не должны пытаться форматировать это как дата вообще. Это количество миллисекунд, а не дата.

Непонятно, чего вы ожидаете результата, но в настоящий момент вы в основном ошибаетесь.

1 голос
/ 25 ноября 2011

Почему бы вам просто не использовать Время .Он имеет метод normalize () , который принимает логическое значение, чтобы указать, хотите ли вы игнорировать DST.

0 голосов
/ 25 ноября 2011

Хорошо, ребята!Может быть, лучше с этим решением:

public static String millisToString(long l){
        long h, m;
        h = l / 3600000;
        m = (l % 3600000) / 60000;
        if(h == 0){
            return m + "m";
        }else{
            return h + "h " + m + "m";
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...