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 时才能正确解析,即使上的是国内的网站也不行, 费解.

 

 

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