Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Weblogic服务器上运行时,JPA日期输出为错误的日期/时间,但在运行本地嵌入的Tomcat时,JPA日期显示正确_Jpa_Spring Boot_Spring Data_Weblogic - Fatal编程技术网

在Weblogic服务器上运行时,JPA日期输出为错误的日期/时间,但在运行本地嵌入的Tomcat时,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;

我有一个spring引导应用程序,它使用spring数据从Oracle数据库检索数据。当我在嵌入式Tomcat中本地运行代码时,日期显示正确。但是,部署到Weblogic server时,相同的代码会给出完全不同的日期/时间结果。我已确认Weblogic服务器上的时区与我的本地时区(美国/东部)相同

奇怪的是,分钟数被删除,并且总是设置为00,而且正确日期和显示日期之间的时间差是不可预测的(一个示例落后16小时,另一个示例落后19小时)

jpa映射:

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