最近接受的項目中用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>