在Weblogic服务器上运行时,JPA日期输出为错误的日期/时间,但在运行本地嵌入的Tomcat时,JPA日期显示正确
我有一个spring引导应用程序,它使用spring数据从Oracle数据库检索数据。当我在嵌入式Tomcat中本地运行代码时,日期显示正确。但是,部署到Weblogic server时,相同的代码会给出完全不同的日期/时间结果。我已确认Weblogic服务器上的时区与我的本地时区(美国/东部)相同 奇怪的是,分钟数被删除,并且总是设置为00,而且正确日期和显示日期之间的时间差是不可预测的(一个示例落后16小时,另一个示例落后19小时) jpa映射:在Weblogic服务器上运行时,JPA日期输出为错误的日期/时间,但在运行本地嵌入的Tomcat时,JPA日期显示正确,jpa,spring-boot,spring-data,weblogic,Jpa,Spring Boot,Spring Data,Weblogic,我有一个spring引导应用程序,它使用spring数据从Oracle数据库检索数据。当我在嵌入式Tomcat中本地运行代码时,日期显示正确。但是,部署到Weblogic server时,相同的代码会给出完全不同的日期/时间结果。我已确认Weblogic服务器上的时区与我的本地时区(美国/东部)相同 奇怪的是,分钟数被删除,并且总是设置为00,而且正确日期和显示日期之间的时间差是不可预测的(一个示例落后16小时,另一个示例落后19小时) jpa映射: import java.util.Date;
import java.util.Date;
...
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "INITIAL_CREATE_DATE")
private Date initialCreateDate;
控制器日志语句:
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm z");
...
log.info("~~create date: " + medley.getInitialCreateDate() + " sdf " + sdf.format(medley.getInitialCreateDate()));
Weblogic的输出(错误):
本地Tomcat和spring数据单元测试的输出(正确):
两件事对我来说很突出(除了日期/时间完全错误之外)
1.时间错过了几分钟
2.日期的.toString()输出的格式不同
非常感谢任何关于如何进一步解决此问题的帮助或想法 我解决了我的问题-发布我的答案,也许它会帮助其他人 这里没有直接从数据库检索到我的“混合泳”对象。它由一个作业检索,然后将这个混合对象作为JSON发布到这个输出日期的方法。虽然我仍然不理解奇怪的日期/时间行为,但至少现在我知道了修复方法 我以前版本的代码使用@Temporal(TemporalType.DATE) 并序列化json,如下所示
"initialCreateDate": "2017-10-27",
我不明白为什么会转换为10月26日星期四20:00:00,但至少我知道在我的工作中应用@Temporal(TemporalType.TIMESTAMP)解决了这个问题。(即,将pom.xml中存储库代码的版本更新为服务使用的相同版本)
这是日期/时间的正确序列化:
"initialCreateDate":1509119873000
我想知道数据库中存储了什么?我想知道用什么SQL来检索它?我不知道用什么来储存它?所有这些问题都可以通过调试和查看日志来回答
"initialCreateDate": "2017-10-27",
"initialCreateDate":1509119873000