JAVA UTC в EST из длинной метки времени UTC - PullRequest
2 голосов
/ 12 апреля 2010

Я пытаюсь преобразовать длинную метку времени, которая является UTC, в восточное стандартное время, и я полностью потерян. Любые намеки были бы великолепны!

Спасибо, R

Ответы [ 3 ]

4 голосов
/ 12 апреля 2010

Попробуйте это:

Date estTime = new Date(utcTime.getTime() + TimeZone.getTimeZone("EST").getRawOffset());

Где utcTime - объект Date времени UTC (если у вас уже есть длинное значение - просто используйте его)

3 голосов
/ 12 апреля 2010
final Calendar c = Calendar.getInstance(TimeZone.getTimeZone("EST"));
c.setTimeInMillis(longTime);

Где longTime - количество миллисекунд с момента времени по UTC. Затем вы можете использовать методы класса Calendar , чтобы получить различные компоненты даты / времени.

1 голос
/ 12 апреля 2010

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.

Надеюсь, что вы попадете туда, куда вам нужно.

...