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条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置