문제

Java Long Datatype (64 비트) 데이터를 레거시 C ++ 앱 Unsigned Int (32 비트) 데이터 유형으로 변환해야합니다.

데이터가 Linux 타임 스탬프이므로 데이터 손실에 대해 걱정하지 않으므로 AEONS가 서명되지 않은 INT 한도를 누르기 위해 사용됩니다.

이 숫자에 어떤 변환을 적용 해야하는지 아십니까?

미리 감사드립니다!

추신 - 데이터 유형 예제 :

Java -1266336527340

C ++ -1266336583

둘 다 같은 날짜와 거의 같은 시간 (+/- 1 분)을 생산합니다.

도움이 되었습니까?

해결책

Java 's 날짜 .getTime 번호를 반환합니다 밀리 초 C ++ 코드는 에포크에서 1000으로 나눈 다음 절단해야합니다.

int timestampAsInt = (int)(timestampAsLong / 1000);

Java는 서명되지 않은 서명 된 정수 만 가지고 있지만 이것은 작동해야합니다.

다른 팁

long javaTime = someDate.getTime();
int cTime = (int)((javaTime + 500) / 1000);

나는 잘린 것을 선호하지만, 당신은 당신의 비즈니스 규칙에 적합한지를 결정해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top