java.util.TimeZone 新加方法 getTimeZone(ZoneId zoneId) 导致的问题
最近接受的项目中用spring配置了一个TimeZone对象:
<bean id ="timeZone4Job" class="java.util.TimeZone" factory-method="getTimeZone"> <constructor-arg value="GMT+8:00"/> </bean>
以前是运行在 1.7 中,没什么问题。今天换了1.8的sdk,spring开始报错,发现原来在1.8里面新加入了方法 getTimeZone(ZoneId zoneId),spring会尝试转换GMT+8:00为ZoneId,而坑爹的是ZoneId.of(String zoneId) 支持的格式少,直接报错。
修改Spring配置如下,问题解决。
<bean id ="timeZone4Job" class="java.util.TimeZone" factory-method="getTimeZone"> <constructor-arg value="GMT+8:00" type="String"/> </bean>