2011-01-11 3 views
1

Я безнадежно застрял в этой задаче. Я получаю от пользователя дату ввода данных, отличную от UTC> Мне нужно сохранить ее как время UTC. Я пробовал разные способы, но он всегда заканчивается следующим образом: (имена методов неактуальны) alt textПолучение смещения временной зоны с помощью Joda Time

Может ли кто-нибудь дать мне правильное направление?

ответ

2

Похоже, вы уже поступаете правильно в первой строке. С небольшими изменениями:

DateTime instant = getDeadLine(orderBean, localTz); 

DateTime.getMillis() даст вам количество миллисекунд с момента UTC эпохи ... так это то, что вам нужно упорствовать. Если вам нужно иметь возможность конвертировать обратно в локальное время, вам нужно будет знать, какой часовой пояс для возврата обратно, конечно, - либо используя один и тот же каждый раз, либо сохраняя его вместе с миллиметрами UTC.

Следует отметить, что местные даты/время не всегда однозначны - одна и та же локальная дата/время может происходить дважды из-за перехода на летнее время. Вам нужно подумать, будет ли это когда-либо иметь отношение к вам.

+0

, так что все, что мне нужно сделать, это упорство: новая дата (новая DateTime (год, месяц, день, час, минута, 0, 0, DateTimeZone.forID («Канада/Тихоокеанский регион»)). GetMillis()) ? – lisak

+0

И иметь информацию о часовом поясе пользователя при отображении даты назад к нему – lisak

+0

@lisak: Я бы не создал 'Date', если честно, просто продолжайте миллисекунды. Тогда есть меньше, чтобы пойти не так. Но в остальном, да. –

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