Java中Calendar和Date的一些使用用法技巧

1. 如果已经知道某个地点的时区,年,月,日,时,分,秒,希望得到转换后的本系统时间,可以采用如下的方法:

方法:假设时区是GMT+08:00,,年是2009年,月是11月,日是7日,时是10时,分是50分,秒是30。

 

public class Time {
 
 public static void main(String[] args) {
  TimeZone tz = TimeZone.getTimeZone("GMT+08:00");        // 获得时区
  Calendar cal = Calendar.getInstance();                              
  cal.setTimeZone(tz);                                                             // 设置时区
  cal.set(Calendar.YEAR, 2009);                                              // 设置年
  cal.set(Calendar.MONTH, Calendar.NOVEMBER);                  // 设置月
  cal.set(Calendar.DAY_OF_MONTH, 7);                                  // 设置日
  cal.set(Calendar.HOUR_OF_DAY, 10);                                                // 设置时
  cal.set(Calendar.MINUTE, 50);                                             // 设置分
  cal.set(Calendar.SECOND, 30);                                            //  设置秒 
  Date date = cal.getTime();                                                   // 获得转成本地系统时区的时间
  System.out.println(date);                                                    // 输出该时间
 }

}

 

输出结果就是转换后的本地系统时区的时间,如果你现在的操作系统的时区是北京(GMT+08:00),则输出结果是

Sat Nov 07 10:50:30 CST 2009。

如果你把操作系统的时区改成曼谷(GMT+07:00), 则输出结果是Sat Nov 07 09:50:30 ICT 2009。

如果你把操作系统的时区改成夏威夷(GMT-10:00),则输出结果是Fri Nov 06 16:50:30 HST 2009。

 

注意你要知道你要转换时间的时区。

 

2. 如果已经有了一个Date的对象,想要获得该对象一段时间后的Date对象,可以使用如下的方法。

假设想要获得18个小时后的时间。

public class Time {
 
 public static void main(String[] args) {
  Date date = new Date();
  System.out.println("原来的时间:");
  System.out.println(date);
  long milliseconds = date.getTime();
  milliseconds = milliseconds + 18 * 60 * 60 * 1000;  // 18小时是18*60*60*1000毫秒
  date.setTime(milliseconds);                                      
  System.out.println("18个小时后的时间:");
  System.out.println(date);
 }

}

 

如果直接在时间的数字上去做加减,在月份处理上会出现点困难,比如有的月份是30天,有的是31天,闰年的二月是29等。

而用上面的方法,可以将这些操作让Date的方法自动去处理。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值