2012-11-07 6 views
2

내 클래스 Event 중 하나는 timeStamp이라는 인스턴스 필드를 갖습니다. 이제 여기에는 전혀 관련이없는 다른 알고리즘에 따라 timeStamp을 설정할 다른 클래스가 있습니다.변수에 시간을 저장하는 방법은 무엇입니까?

제 질문은 유형에 보관해야합니까? timeStamp? 지금까지 조사한 바에 따르면 밀리 초 단위로 계산되어야하므로 아마도 double에 저장해야한다는 인상을 받았습니다.

기본적으로 Clock 클래스는 다음 형식으로 시간을 시뮬레이션합니다. hh : mm : ss. 그러나 개발중인 이산 이벤트 시뮬레이션이므로이 이벤트는 이벤트마다 점프되며 timeStamp 값으로 결정됩니다. 즉, 각 이벤트 객체는 에 저장된 timeStamp 값을가집니다. 그래서 timeStampClock과 동일한 형식으로 저장하는 것에 대해 생각했습니다. 새로운 클래스 TimeStamp을 작성하면 timestamp의 형식이됩니다. 아니면 시계가 밀리 초 단위로 시간을 시뮬레이션하도록해야합니까?

이 점에 대해 어떻게 생각하십니까? 나는 이것을 구현하는 가장 효율적/깨끗한 방법에 대해 확신하지 못합니다.

+0

날짜 시간에 어떤 문제가 있습니까 :

는이 같은 같은 값을받을 수 있나요? 아, 죄송합니다. [Joda Time의 DateTime 클래스] (http://joda-time.sourceforge.net/apidocs/org/joda/time/DateTime.html)를 생각하고 있습니다. –

답변

2

날짜가 이후 밀리 초로 저장된 경우 long을 사용해야합니다.

밀리 초의 분수에는 관심이 없으므로 double은 필요 없습니다.

최대 int 값이 약 1 개월 (밀리 초)을 나타낼만큼만 크기 때문에 int을 사용할 수 없습니다.

long millisSinceEpoch = Calendar.getInstance().getTimeInMillis();

+0

및 우리는 부동 비교 부정확을 피할 수 있습니다! –

2

밀리 초를 long에 저장하십시오.

Joda Time에서 DateTime 클래스를 사용하면 결과 숫자에 대한 모든 종류의 복잡한 작업을 수행 할 수 있습니다. This overload을 사용하면 밀리 초 값을 DateTime 개체에 직접 연결할 수 있습니다.

관련 문제