mongo DB에 Java 8 LocalDate 저장
스프링 부트 사용1.5.4.RELEASE
그리고 몽고 드라이버3.4.2
.
저장하고 싶습니다.LocalDate
에mongo DB
하지만 저는 이상한 문제에 직면해 있습니다.
LocalDate startDate = LocalDate.now();
LocalDate endDate = LocalDate.of(2020,12,01);
System.out.println("---- StartDate : ---"+startDate);
System.out.println("-----End Date : ----"+endDate);
repository.save(new Person("Mehraj","Malik", startDate, endDate));
콘솔의 출력:
시작 날짜: ---2017-08-26
----종료 날짜: ----2020-12-01
그러나 MongoDb에서는 잘못된 날짜를 저장하고 있습니다.
다음은 MongoDb의 json입니다.
"시작일" : ISO 날짜("2017-08-25T 18:30:00.000Z"),
"종료 날짜":ISO 날짜("2020-11-30T 18:30:00.000Z")
또한 인도 시간에 따라 저장된 시간도 잘못되었다는 것을 알게 되었습니다.
콘솔에서는 날짜가 맞지만 MongoDB에서는 날짜가 맞지 않는 이유와 이 문제를 해결하는 방법은 무엇입니까?
날짜 개체에 대한 mongo-java 클라이언트가 다음의 인스턴스로 반환됩니다.java.util.Date
.
문제는 아마도 당신이 그것을 저장하는 동안에 있을 수 있습니다.startDate
그리고endDate
가치, 그것toString()
메소드는 JVM의 기본 표준 시간대를 사용하여 값을 업데이트할 수 있습니다.
이 문서에는 공식 BSON 규격이 BSON 날짜 유형을 UTC 날짜 시간으로 참조한다고 나와 있습니다.그리고 그것이 당신의 이유일 수 있습니다.LocalDateTime
속성이 DB에 저장되기 전에 UTC 시간대로 변환되었습니다.
또한 이러한 혼동을 방지하기 위해 bson 유형을 사용하여 날짜 필드를 업데이트하는 것이 좋습니다.
MongoDB Java Driver 3.7 릴리스: http://mongodb.github.io/mongo-java-driver/3.7/whats-new/ 에서 드라이버가 LocalDate를 지원하는 것을 확인할 수 있습니다.
JSR-310 Instant, LocalDate 및 LocalDateTime 지원 기능이 드라이버에 추가되었습니다.
언급URL : https://stackoverflow.com/questions/45892242/storing-java-8-localdate-in-mongo-db
'programing' 카테고리의 다른 글
Git 분기: 마스터 대 오리진/마스터 대 원격/오리진/마스터 (0) | 2023.07.05 |
---|---|
ORA-01654: 인덱스를 확장할 수 없습니다. (0) | 2023.07.05 |
내부적으로 Oracle에 연결하려고 시도하거나 유휴 인스턴스를 얻으려고 합니까? (0) | 2023.07.05 |
'#' 링크를 클릭하면 페이지 맨 위로 이동하지 않도록 하려면 어떻게 해야 합니까? (0) | 2023.07.05 |
MongoDB에서 인덱스를 다시 작성해야 하는 이유와 시기는 무엇입니까? (0) | 2023.07.05 |