2011-01-11 6 views
1

나는이 작업에 희망을 가지지 않습니다. 나는 UTC 이외의 미래 날짜 입력을 사용자로부터받습니다> UTC 시간으로 유지해야합니다. 다양한 방법을 시도했지만 항상 다음과 같이 끝납니다. (메서드 이름은 무의미합니다.) alt textJoda Time에서 시간대 오프셋을 가져 오는 중

나에게 올바른 방향을 알려주시겠습니까?

답변

2

첫 번째 줄에서 이미 옳은 일을하고있는 것처럼 보입니다. 약간의 수정과 함께 : 그건 당신이 지속 할 필요 그래서

DateTime instant = getDeadLine(orderBean, localTz); 

DateTime.getMillis()은 ... 당신에게 UTC의 시대부터의 밀리 세컨드 수를 줄 것이다. 현지 시간으로 다시 변환 할 수 있어야 할 경우 매번 같은 시간대를 사용하거나 UTC millis와 함께 저장하기 위해 다시 변환 할 시간대를 알아야합니다.

한 가지주의해야 할 점은 지역 날짜/시간이 항상 명확하지는 않다는 점입니다. 일광 절약 시간 변경으로 인해 같은 지역 날짜/시간이 두 번 발생할 수 있습니다. 그것이 당신과 관련이 있는지 여부에 대해 생각할 필요가 있습니다.

+0

이렇게하려면 다음과 같이해야합니다. new Date (new DateTime (year, month, day, hour, min, 0, 0, DateTimeZone.forID ("Canada/Pacific")). getMillis()) ? – lisak

+0

그리고 그 사람에게 다시 날짜를 표시 할 때 사용자의 시간대에 대한 정보를 가지고 있습니다. – lisak

+0

@lisak : 정직하게 말하면 'Date'를 만들지 않을 것입니다. 단지 밀리 초를 유지하십시오. 그러면 잘못 될 가능성이 적습니다. 하지만 그렇지 않으면 그렇습니다. –

관련 문제