2017-01-06 25 views
2

Мой очень простой код:экземпляр Java TimeZone показывает различные смещения при запуске на различных средах

public static void main(String[] args) 
    { 
    TimeZone tz = TimeZone.getTimeZone("Europe/Moscow"); 
    System.out.println(tz); 
    } 

Когда я запустить его локально на моей машине я получаю:

sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null] 

При установке на тестировании Unix машина я получаю:

sun.util.calendar.ZoneInfo[id="Europe/Moscow",offset=14400000,dstSavings=0,useDaylight=false,transitions=78,lastRule=null] 

Так что разные смещения, похоже, что первый использует дневное свечение время, а последнее нет, но поле useDaylight установлено как false. То, что подозрительно, - это количество переходов, которые на моей локальной машине показывают, что он прошел дополнительный переход по сравнению с тестовой машиной. Любая идея?

ответ

2

Возможно, вы используете разные Java-сборки. Один из них поддерживает DST, другой - нет. В России больше нет изменений в DST, может быть, одна Java-сборка старая и не знает об этом.

 Смежные вопросы

  • Нет связанных вопросов^_^