fix: 修复UTC时间转为当地时间错误的问题
This commit is contained in:
parent
6d643be074
commit
462b9a1b87
|
|
@ -0,0 +1,19 @@
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.time.ZonedDateTime;
|
||||
|
||||
public class LocalDateTimeTest {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
System.out.println(now);
|
||||
ZonedDateTime utcZoned = now.atZone(ZoneOffset.UTC);
|
||||
ZonedDateTime shanghaiZoned = utcZoned.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
|
||||
LocalDateTime shanghaiDateTime = shanghaiZoned.toLocalDateTime();
|
||||
System.out.println(shanghaiDateTime);
|
||||
}
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import java.sql.ResultSet;
|
|||
import java.sql.SQLException;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.ZoneOffset;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -24,7 +25,7 @@ public class UTCLocalDateTimeTypeHandler extends BaseTypeHandler<LocalDateTime>
|
|||
public void setNonNullParameter(PreparedStatement ps, int i, LocalDateTime parameter, JdbcType jdbcType) throws SQLException {
|
||||
// 将本地时间转换为 UTC 时间
|
||||
LocalDateTime utcTime = parameter.atZone(ZoneId.systemDefault())
|
||||
.withZoneSameInstant(ZoneId.of("UTC"))
|
||||
.withZoneSameInstant(ZoneOffset.UTC)
|
||||
.toLocalDateTime();
|
||||
ps.setObject(i, utcTime);
|
||||
}
|
||||
|
|
@ -55,8 +56,9 @@ public class UTCLocalDateTimeTypeHandler extends BaseTypeHandler<LocalDateTime>
|
|||
return null;
|
||||
}
|
||||
String zone = MultilingualUtil.getZone();
|
||||
return utcTime.atZone(ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone))
|
||||
.withZoneSameInstant(ZoneId.systemDefault())
|
||||
return utcTime
|
||||
.atZone(ZoneOffset.UTC)
|
||||
.withZoneSameInstant(ZoneId.of(Objects.isNull(zone) ? "Asia/Shanghai" : zone))
|
||||
.toLocalDateTime();
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue