package com.anjlab.ping.entities; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import java.util.concurrent.TimeUnit; import org.junit.Test; public class TestTimezone { @Test public void getTime() throws Exception { TimeZone moscowTimezone = TimeZone.getTimeZone("GMT+03:00"); Date date = new Date(); // UTC time SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); format.setTimeZone(moscowTimezone); System.out.println(format.format(date)); Calendar c = Calendar.getInstance(moscowTimezone); c.setTime(date); System.out.println(c.get(Calendar.HOUR_OF_DAY)); } @Test public void testTimezoneModel() { for (String id : TimeZone.getAvailableIDs()) { TimeZone timeZone = TimeZone.getTimeZone(id); long minutes = TimeUnit.MINUTES.convert(timeZone.getRawOffset(), TimeUnit.MILLISECONDS); String gmtOffset = String.format("GMT%+d:%02d", minutes / 60, minutes % 60); String displayName = String.format("(%s) %s, %s", gmtOffset, timeZone.getDisplayName(), id); System.out.println(displayName); } } }