Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/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
Java JSF/Oracle中的日期和时区_Java_Jsf_Time_Timezone - Fatal编程技术网

Java JSF/Oracle中的日期和时区

Java JSF/Oracle中的日期和时区,java,jsf,time,timezone,Java,Jsf,Time,Timezone,我有一个Oracle数据库,其中有时间戳字段,但不存储时区 我们开发的一个全球JSF应用程序正在英国、美国和瑞典使用——我们同意用服务器时间保存日期,用服务器时间显示日期 我只是使用托管bean中的新日期创建日期戳,然后将它们存储在Oracle中 我在Oracle有个约会: 21-AUG-13 12.24.13.125000000 我希望这个日期用JSF表示。我们知道现在是服务器时间,即UTC+2 JSF和Primefaces将其表示为: 21/08/2013 11:24 所以好像要减去一个

我有一个Oracle数据库,其中有时间戳字段,但不存储时区

我们开发的一个全球JSF应用程序正在英国、美国和瑞典使用——我们同意用服务器时间保存日期,用服务器时间显示日期

我只是使用托管bean中的新日期创建日期戳,然后将它们存储在Oracle中

我在Oracle有个约会:

21-AUG-13 12.24.13.125000000
我希望这个日期用JSF表示。我们知道现在是服务器时间,即UTC+2

JSF和Primefaces将其表示为:

21/08/2013 11:24
所以好像要减去一个小时

我访问了运行tomcat的linux实例,date给了我:

Thu Sep 19 16:25:45 CEST 2013
对一个新的日期实例执行System.out.println,我得到:

Thu Sep 19 15:25:45
我假设在托管bean中创建一个日期实例将使用托管tomcat的linux服务器上的日期,但是比它晚了一个小时

我知道日期没有时区成分,但假设UTC

因此,我可能正在将一个实际为UTC+2的日期读回到一个日期实例中,该实例假定这是UTC+0…然后不知何故,JSF看到服务器在UTC+2下运行,正在减去2个小时,以使我返回UTC

如果您能提供任何关于这个问题的建议,以及为什么新日期与linux Date shell值不匹配,我们将不胜感激

问候


好的,谢谢……根据链接,这似乎让事情变得不那么混乱了:

<context-param>
    <param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
    <param-value>true</param-value>
</context-param>
jsf

JSF是否知道我的服务器是UTC+2,所以要更正为UTC,它会从我2013年9月20日的日期减去2小时,并在JSF转换期间将其推到前一天?在我看来,一个日期没有UTC组件,那么为什么它要尝试将UTC+0的日期转换为其他任何日期呢

问候


一个简单问题的可能重复是,如何让JSF给我与Oracle中相同的日期!!告诉JSF使用哪个时区。它确实默认为UTF,正如您在副本中遇到和回答的那样。另一个可能的副本:我认为我的问题是,我正在将Oracle的UTC+2日期读回到假定UTC+0的日期实例中。。。
default system timezone is sun.util.calendar.ZoneInfo[id="Europe/Stockholm",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=119,lastRule=java.util.SimpleTimeZone[id=Europe/Stockholm,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]]
    <h:outputLabel value="#{customerTasksBean.travelTask.travelDate}" rendered="#{customerTasksBean.renderTravel}">
        <f:convertDateTime pattern="dd-MMM, yyyy" />
  </h:outputLabel>