최대 절전 모드 및 joda 시간을 사용하여 데이터베이스에 DateTime을 저장할 때 이상한 문제가 있습니다. 나는 개정 날짜 엔티티를 저장하면최대 절전 모드 SQL Server 데이터베이스에서 joda DateTime을 저장하는 방법
import org.joda.time.DateTime;
public class RelationshipEntity {
@Column(name = "date_revision")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime dateRevision;
// other fields
}
내가 TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
과 응용 프로그램에서 유럽/파리 (GMT + 1)에 시간대를 설정 한 :
나는 이런 콩이 데이터베이스에 2017-01-19 13:24
까지, 나는 데이터베이스에 날짜가 2017-01-19 12:24
으로 설정되어 있고 왜 그런지 이해할 수 없다는 것을 알 수 있습니다. 때문에
는 데이터베이스 시간대가 유럽/파리 것 같습니다 : 나는 봄 부팅을 사용할 때
SELECT SYSDATETIME(); //2017-01-19 14:41
SELECT SYSUTCDATETIME(); // 2017-01-19 13:41
내가에 논문 속성을 추가하려고 application.yml
jadira.usertype.autoRegisterUserTypes: true
jadira.usertype.databaseZone: jvm
jadira.usertype.javaZone: jvm
을 입력하고 -Duser.timezone=Europe/Paris
인수로 애플리케이션을 시작하지만 여전히 저장 날짜를 UTC로 데이터베이스에 저장합니다.
LocalDateTime
에
DateTime
을 변경 문제를 해결하기 위해이 변화
@Column(name = "date_revision")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")
private DateLocalTime dateRevision;
를, 데이터베이스의 dateRevision 내가 내 자바 빈에서 설정 한 동일합니다.
누군가 org.joda.time.DateTime
을 사용할 때 날짜가 UTC로 변환되는 이유를 설명 할 수 있습니까?
참고 : I 최대 절전 모드 4 사용하고 joda 시간은 2.5
DB에 시간을 절약 할 때 보편적 인 표준이 있다는 것을 의미하지 않습니까? 두 개의 서로 다른 시간대에있는 2 명의 사용자가 사용한다면 어떻게 될까요? – notanormie
내 응용 프로그램과 데이터베이스의 시간대가 동일하면 왜 Java의 날짜와 db의 날짜가 다른지 이해할 수 없습니다. DateTime을 사용할 때 UTC로 날짜를 변환하는 기본 동작입니까? –