ConvertDateTime 未获得 web.xml 中定义的时区
ConvertDateTime does not get timezone defined in web.xml
我正在使用 f:convertDateTime 格式化数据表中的日期时间。我在 web.xml 中设置了以下上下文参数以将时区显式设置为系统时区:
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
出于某种原因,我的 convertDateTime 总是 "GMT",但正确的时区是 "GMT-03:00"。我在 class 测试中尝试了这个以查看我的时区:
System.out.println(TimeZone.getDefault().getDisplayName());
这给了我 "GMT-03:00"。
我正在使用 JSF 1.2 和 JBoss Seam 2.2,jboss-seam DateTimeConverter 被调用来进行此转换,我不知道这是否是问题所在。
I'm using JSF 1.2
提到的上下文参数是在 JSF 2.0 中引入的。它在 JSF 1.x 中不可用。另见 a.o。 Set a default time zone for f:convertDateTime。换句话说,它根本就没有被使用过。删除它以避免混淆。
您有 2 个选择:
在每个 <f:convertDateTime>
.
中明确指定 timeZone
<h:xxx ...>
<f:convertDateTime ... timeZone="GMT-3" />
</h:xxx>
如有必要,作为应用程序范围的 bean 属性。
<h:xxx ...>
<f:convertDateTime ... timeZone="#{config.timeZone}" />
</h:xxx>
使用新的默认时区(和其他属性)扩展日期时间转换器。
public class DefaultDateTimeConverter extends DateTimeConverter {
public DefaultDateTimeConverter() {
setType("both");
setTimeZone(TimeZone.getTimeZone("GMT-3"));
}
}
<converter>
<converter-id>defaultDateTimeConverter</converter-id>
<converter-class>com.example.DefaultDateTimeConverter</converter-class>
</converter>
然后用它替换<f:convertDateTime>
。
<h:xxx ... converter="defaultDateTimeConverter" />
我正在使用 f:convertDateTime 格式化数据表中的日期时间。我在 web.xml 中设置了以下上下文参数以将时区显式设置为系统时区:
<context-param>
<param-name>javax.faces.DATETIMECONVERTER_DEFAULT_TIMEZONE_IS_SYSTEM_TIMEZONE</param-name>
<param-value>true</param-value>
</context-param>
出于某种原因,我的 convertDateTime 总是 "GMT",但正确的时区是 "GMT-03:00"。我在 class 测试中尝试了这个以查看我的时区:
System.out.println(TimeZone.getDefault().getDisplayName());
这给了我 "GMT-03:00"。
我正在使用 JSF 1.2 和 JBoss Seam 2.2,jboss-seam DateTimeConverter 被调用来进行此转换,我不知道这是否是问题所在。
I'm using JSF 1.2
提到的上下文参数是在 JSF 2.0 中引入的。它在 JSF 1.x 中不可用。另见 a.o。 Set a default time zone for f:convertDateTime。换句话说,它根本就没有被使用过。删除它以避免混淆。
您有 2 个选择:
在每个
中明确指定<f:convertDateTime>
.timeZone
<h:xxx ...> <f:convertDateTime ... timeZone="GMT-3" /> </h:xxx>
如有必要,作为应用程序范围的 bean 属性。
<h:xxx ...> <f:convertDateTime ... timeZone="#{config.timeZone}" /> </h:xxx>
使用新的默认时区(和其他属性)扩展日期时间转换器。
public class DefaultDateTimeConverter extends DateTimeConverter { public DefaultDateTimeConverter() { setType("both"); setTimeZone(TimeZone.getTimeZone("GMT-3")); } }
<converter> <converter-id>defaultDateTimeConverter</converter-id> <converter-class>com.example.DefaultDateTimeConverter</converter-class> </converter>
然后用它替换
<f:convertDateTime>
。<h:xxx ... converter="defaultDateTimeConverter" />