SimpleDateFormt 使用中遇到的一個小問題

在做proxyserver 時要考慮的一個問題就是要對Client 的If-Modified-since 和 Server端的 Last-Modified 的兩個時間進行比較, 如果用java 些的話就比較方便, 但是有一些小問題必須要注意, 否則自己些的proxy總是 在一些機器上沒問題, 但在有些機器上就不行.

問題的根源是在構造SimpleDateFormat 是的一個小小疏忽, 一般我們構造就是像這樣:

SimpleDateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");   //此時埋下了隱患

因爲DateFormat 是locale-sensitive 的類 所以在構造對象的時候沒有指明相應的Locale 的話就有可能不能進行時間的解析, 具體哪臺機器可以解析 哪臺不能 就要看其JVM 的設置了, 所以在構造這種locale-sensitive 時就不能忘記Locale 的指明, 像NumberFormat.

但是在做proxyserver時 一下幾種df 都失敗了:

df = new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss z",java.util.Locale.CHINA);

df = new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss z",java.util.Locale.PRC);

不知道爲什麼 只有把地區指定爲US 時才能正確解析,即使上的是國內的網站也不行, 費解.

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章