Почему следующий код:
System.out.println("Khartoum offset: " + TimeZone.getTimeZone("Asia/Khartoum").getRawOffset());
// GMT+2
System.out.println("Moscow offset: " + TimeZone.getTimeZone("Europe/Moscow").getRawOffset());
// GMT+3
System.out.println("Cairo offset: " + TimeZone.getTimeZone("Africa/Cairo").getRawOffset());
// GMT+2
производит такой странный ввод:
Khartoum offset: 0, why is this 0??? It should have been 7200000
Moscow offset: 10800000 // 3 hours, which is OK for GMT+3
Cairo offset: 7200000 // 2 hours, which is OK for GMT+2
Если вы введете в Google Khartoum time
, вы обнаружите, что в Хартуме GMT+2
(то же, что и "Каир").
UPD : System.out.println(TimeZone.getTimeZone("Africa/Khartoum").getRawOffset());
распечатывает 10800000
, что в основном составляет GMT + 3.Не должен ли он печатать 7200000
(что соответствует GMT + 2), хотя (доказательство: что по этому поводу: ideone.com / sm2SHC )?