rd42, Можете ли вы дать мне немного больше контекста по этому поводу?
Вы говорите, что у вас есть "UTC timestamp". Это хранится в базе данных? Это строка?
Я мог бы дать вам больше ответа, если вы сможете дать контекст, в котором вы пытаетесь это проработать.
Хорошо, для ясности, вы говорите, что у вас есть длинное значение, представляющее временную метку в UTC.
Так что в этом случае вы захотите сделать следующее.
import java.util.Calendar;
import java.util.TimeZone;
TimeZone utcTZ= TimeZone.getTimeZone("UTC");
Calendar utcCal= Calendar.getInstance(utcTZ);
utcCal.setTimeInMillis(utcAsLongValue);
Теперь ваш объект календаря в UTC.
Чтобы отобразить это, хотя вы захотите сделать что-то вроде следующего:
import java.text.SimpleDateFormat;
import java.util.Date;
SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzz");
sdf.setTimeZone(utcTZ);
Date utcDate= utcCal.getTime();
sdf.formatDate(utcDate);
Это позволит вам прочитать отметку времени для часового пояса UTC, хранящегося в виде длинного значения, и преобразовать его в объект Java Calendar или Date.
Надеюсь, что вы попадете туда, куда вам нужно.