免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2415 | 回复: 4
打印 上一主题 下一主题

如何让Date类型变量按指定国家所在时区显示? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-01-23 12:53 |只看该作者 |倒序浏览
有一 java.util.Date 变量, 如何可以将它按西班牙的时区显示出来?
比如说:

new java.util.Date() // 这里取到的是我们的本地时间.

如果我想 System.out.println(...) 显示的结果是 西班牙时区的时间. (如果按西班牙的时区显示. 肯定不是 Date().toString了, 至少得算上时差)

这样的效果要怎样做?

论坛徽章:
0
2 [报告]
发表于 2006-01-23 14:14 |只看该作者
java.util.Calendar

论坛徽章:
0
3 [报告]
发表于 2006-01-23 14:41 |只看该作者
System.out.println(new Date());                        // 本地当前时间

Locale locale = new Locale("es");
Calendar cal = Calendar.getInstance(locale);
System.out.println(cal.getTime());                     // 目的: 想将本地时间按西班牙的时差显示 但显示结果不对

是不是 Calendar 这样用不对?

论坛徽章:
0
4 [报告]
发表于 2006-01-24 14:00 |只看该作者
我其实也没试验过,其实是和TimeZone, Calendar, SimpleDateFormat这3个类有关

这是我刚才写的检查代码


  1. import java.util.Calendar;
  2. import java.util.Locale;
  3. import java.util.TimeZone;
  4. import java.text.SimpleDateFormat;

  5. ....................

  6.                 Calendar cal = Calendar.getInstance();
  7.                 System.out.println(cal.getTime());
  8.                 TimeZone tzCN = TimeZone.getDefault(); // TimeZone.getTimeZone("Asia/Shanghai");
  9.                 TimeZone tzJP = TimeZone.getTimeZone("Japan");
  10.                 TimeZone tzES = TimeZone.getTimeZone("Europe/Madrid");
  11.                 TimeZone tzES2 = TimeZone.getTimeZone("GMT+1:00");
  12.                 Locale locCN = Locale.CHINA;
  13.                 Locale locJP = Locale.JAPAN;
  14.                 Locale locES = new Locale("es");
  15.                 Locale locES2 = Locale.US;
  16.                 Calendar calCN = Calendar.getInstance(tzCN);
  17.                 Calendar calJP = Calendar.getInstance(tzJP);
  18.                 Calendar calES = Calendar.getInstance(tzES);
  19.                 Calendar calES2 = Calendar.getInstance(tzES);
  20.                 // long iDate = cal.getTimeInMillis();
  21.                 // long iOffsetCN = tzCN.getOffset(iDate);
  22.                 // long iOffsetJP = tzJP.getOffset(iDate);
  23.                 // long iOffsetES = tzES.getOffset(iDate);
  24.                 // long iOffsetES2 = tzES2.getOffset(iDate);
  25.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  26.                 sdf.setCalendar(calCN);
  27.                 System.out.println(tzCN.getDisplayName(locCN) + "\t\t" + sdf.format(cal.getTime()));
  28.                 sdf.setCalendar(calJP);
  29.                 System.out.println(tzJP.getDisplayName(locJP) + "\t\t" + sdf.format(cal.getTime()));               
  30.                 sdf.setCalendar(calES);
  31.                 System.out.println(tzES.getDisplayName(locES) + "\t" + sdf.format(cal.getTime()));       
  32.                 sdf.setCalendar(calES2);
  33.                 System.out.println(tzES2.getDisplayName(locES2) + "\t\t" + sdf.format(cal.getTime()));       
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-01-25 11:24 |只看该作者
谢谢楼上各位. 按 jhsea3do 的方法, 问题解决了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP