ZonedDateTime.now (ZoneOffset.UTC) .toString()을 사용하여 현재 시간을 가져 오려고합니다. 잘 작동하지만 롤오버 (00.000Z)에있을 때 초/밀리 초가 잘리는 것처럼 보입니다. 일반적으로 중요하지 않지만 ElasticSearch에 데이터를 쓰고 있습니다. ElasticSearch는 전달하는 날짜 (수집 된 시간)에 대한 엄격한 매핑이 있습니다.Java 8 ZonedDateTime
내가 생각하고있는 것이 어쩌면 당황 할 수도 있지만, 항상 초와 밀리 초로 날짜/시간을 제공 할 수 있는지 확인하려고합니다.
기본 코드 (첫 번째 패스는 밀리 초를 추가했지만, 초도 가능 생략 할 수 표시) :
def utcDate = ZonedDateTime.now(ZoneOffset.UTC)
def utcDateStr = utcDate.toString()
utcDateStr = utcDateStr.contains(".") ? utcDateStr
: utcDateStr.replace("Z","").concat(".000Z")
그것은 거의 항상 아래의 형식으로 할 것을 권장합니다
2016-06-16T05:43:07.624Z
'toString() '을 호출하면 초/밀리 초를 줄인다는 것이 확실 할 것입니다. 그렇지 않으면'now()'와 같이 들리므로 소리가 끊깁니다. –
아, 좋은 지적 @ 존스 켓. 당신이 맞습니다, 나는 질문을 수정/수정 할 것입니다. – scarpacci