2016-05-31 3 views
0

나는 유닉스 시간을 자바에서 첫 달에 성공 시키려고 노력하고있다. 예 :Java : 유닉스 시간 (Long)에서 달의 첫 번째 날까지

1314057600 (2011년 (화) 8월 23일 0시 0 분 0 초 GMT)

1312156800 (2011년 (월) 그리니치 표준시 00시 00분 0초 8월 1일)

파일에서 읽는 중이고 변수 ("valor"라는 변수) 내에 Long으로 저장하는 유닉스 시간. 나는으로이 새로운 타임 스탬프를 얻는 방법

LocalDate key = LocalDate.of(timestamp.getYear(), timestamp.getMonthValue(), 1); 

: 은 지금까지 나는 달의 beggining에 대한 새로운 타임 스탬프를 그

LocalDateTime timestamp = LocalDateTime.ofInstant(Instant.ofEpochSecond(valor), ZoneId.systemDefault()); 

와 자바 타임 스탬프를 생성하고 생성 할 수있었습니다 긴? 이 같은

+0

우선 고려해야 할 사항 : 어느 표준 시간대에 관심이 있으십니까? 항상 UTC입니까? 그리고 나는 그레고리력을 추측합니까? –

+1

이전 게시물에서 시도하십시오 (http://stackoverflow.com/a/21247526/442256) – sfk

+0

이 경우 시간대는 중요하지 않으며 그레고리력은 예입니다. –

답변

2

뭔가 작동 것 같은 소리 :

key.atStartOfDay().atZone(ZoneId.systemDefault()).toEpochSecond() 

(당신이 시스템의 기본 시간대에 원하는 가정).

+0

Perfect! 내 실수는 LocalDate 대신 LocalDate를 사용했다는 것입니다. LocalDate에는 'toEpochSecond'가 없으며 'toEpochDay'만이 동일하지 않습니다. –