xie2022228 2010-01-05 10:38
浏览 404
已采纳

java 国际化时间问题

一个系统,客户有美国的和中国的,由于2个地方时区不同,要求中国用户提交时的日期,在美国用户访问时显示为美国时间,这个该怎么实现?另外数据库里面存的这个日期该怎么存呢?页面上显示的时候怎么转换时区?

我觉得数据库肯定是存某个时区的时间,然后页面上根据客户端的时区进行转换,不知道对不对
[b]问题补充:[/b]
如何转换成UTC时间?utc时间如何转为某个时区的时间?
我db的字段类型是timestamp
[b]问题补充:[/b]
问题已经解决。
结论如下:
1.date类型的存储的是一个距离1970年以来的毫秒数,这个值与时区无关。
换句话说, new Date()获得的日期在任何时区下都一样

2.至于不同时区的显示问题,其实只是显示方式不一样而已。
只需要将SimpleDateFormat的timezone设置一下而已,调用format方法得到的是该日期在某种时区下的显示方式

  • 写回答

3条回答 默认 最新

  • ccnunlp 2010-01-05 12:50
    关注

    //当前系统默认时区的时间:
    Calendar calendar=new GregorianCalendar();
    System.out.print("时区:"+calendar.getTimeZone().getID()+" ");
    System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));
    //美国洛杉矶时区
    TimeZone tz=TimeZone.getTimeZone("America/Los_Angeles");
    //时区转换
    calendar.setTimeZone(tz);
    System.out.print("时区:"+calendar.getTimeZone().getID()+" ");
    System.out.println("时间:"+calendar.get(Calendar.HOUR_OF_DAY)+":"+calendar.get(Calendar.MINUTE));

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料