地区时间格式设置的问题,不要依赖这种设置来做程序,还是老实点,用new Date(年,月,日,时,分,秒)比较妥当。

解决方案 »

  1.   

    感谢你的回答,请问有什么办法在我本地重现这个问题吗,怎么修改地区的时间格式,我本地的貌似是UTC
      

  2.   

    时区不一样,并不是你2种都支持,而是 var originalDOB = new Date("<%=indvCustomerVO.getBirthday()%>"); 这个输出的内容是CST的,如果变成HKT也转换不了。。你的这个值是怎么写入的?HKT是香港时区,楼主不会是直接在客户端new Date后调用toString得到的值写入数据库的吧。。
      

  3.   

    indvCustomerVO.getBirthday()这个值时从后台数据库取得,我的环境取得时CST形式的,但是客户环境取得是HKT形式的,代码都是一样的,我在本地把CST改成HKT,确实出现了不支持的情况。但是为什么HKT不支持呢,难道JS new Date单单不支持香港,想想觉得不太可能
      

  4.   


    indvCustomerVO.getBirthday()这个值时从后台数据库取得,我的环境取得时CST形式的,但是客户环境取得是HKT形式的,代码都是一样的,我在本地把CST改成HKT,确实出现了不支持的情况。但是为什么HKT不支持呢,难道JS new Date单单不支持香港,想想觉得不太可能
      

  5.   

    <%=indvCustomerVO.getBirthday()%>这个是服务器端代码,只依赖于服务器端的时区设置,和客户端无关我怀疑是你写数据的时候用js生成的时间,导致存储的数据格式依赖于客户端的时区了,自己检查下数据库中对应记录的字段存储的内容是什么
      

  6.   

    而且感觉你格式有问题吧。。就算是hkt的好像是Sun Sep 04 2011 21:40:04 GMT+0800 (HKT)这种格式。。hkt怎么跑中间去了http://stackoverflow.com/questions/7299695/js-date-tolocalestring自己看看对象getBirthday怎么定义的和数据库中的记录内容是什么,是不是自己格式化过了
      

  7.   

    可以肯定是跟时区有关了,我在java中设置了一下默认时区,结果显示就带HKT了,
    TimeZone.setDefault(TimeZone.getTimeZone("Asia/Hong_Kong"));
    但是JS中对于HKT后缀的不支持