主页 > 知识库 > 网络编程 > JSP/Java >

JAVA的Date类与Calendar类(2)

来源:中国IT实验室 作者:佚名 发表于:2013-07-11 10:59  点击:
//星期几 int day = c2.get(Calendar.DAY_OF_WEEK); System.out.println(年份: + year); System.out.println(月份: + month); System.out.println(日期: + date); System.out.println(小时: + hour); Syst

//星期几  int day = c2.get(Calendar.DAY_OF_WEEK);
  System.out.println("年份:" + year);
  System.out.println("月份:" + month);
  System.out.println("日期:" + date);
  System.out.println("小时:" + hour);
  System.out.println("分钟:" + minute);
  System.out.println("秒:" + second);
  System.out.println("星期:" + day);
  使用Calendar类中的get方法可以获得Calendar对象中对应的信息,get方法的声明如下:
  public int get(int field)
  其中参数field代表需要获得的字段的值,字段说明和上面的set方法保持一致。需要说明的是,获得的月份为实际的月份值减1,获得的星期的值和Date类不一样。在Calendar类中,周日是1,周一是2,周二是3,依次类推。
  4、其它方法说明
  其实Calendar类中还提供了很多其它有用的方法,下面简单的介绍几个常见方法的使用。
  a、add方法
  public abstract void add(int field,int amount)
  该方法的作用是在Calendar对象中的某个字段上增加或减少一定的数值,增加是amount的值为正,减少时amount的值为负。
  例如在计算一下当前时间100天以后的日期,代码如下:
  Calendar c3 = Calendar.getInstance();
  c3.add(Calendar.DATE, 100);
  int year1 = c3.get(Calendar.YEAR);
  //月份
  int month1 = c3.get(Calendar.MONTH) + 1;
  //日期
  int date1 = c3.get(Calendar.DATE);
  System.out.println(year1 + "年" + month1 + "月" + date1 + "日");
  这里add方法是指在c3对象的Calendar.DATE,也就是日期字段上增加100,类内部会重新计算该日期对象中其它各字段的值,从而获得100天以后的日期,例如程序的输出结果可能为:
  2009年6月17日
  b、after方法
  public boolean after(Object when)
  该方法的作用是判断当前日期对象是否在when对象的后面,如果在when对象的后面则返回true,否则返回false。例如:
  Calendar c4 = Calendar.getInstance();
  c4.set(2009, 10 - 1, 10);
  Calendar c5 = Calendar.getInstance();
  c5.set(2010, 10 - 1, 10);
  boolean b = c5.after(c4);
  System.out.println(b);
  在该示例代码中对象c4代表的时间是2009年10月10号,对象c5代表的时间是2010年10月10号,则对象c5代表的日期在c4代表的日期之后,所以after方法的返回值是true。
  另外一个类似的方法是before,该方法是判断当前日期对象是否位于另外一个日期对象之前。
  c、getTime方法
  public final Date getTime()
  该方法的作用是将Calendar类型的对象转换为对应的Date类对象,两者代表相同的时间点。
  类似的方法是setTime,该方法的作用是将Date对象转换为对应的Calendar对象,该方法的声明如下:
  public final void setTime(Date date)
  转换的示例代码如下:
  Date d = new Date();
  Calendar c6 = Calendar.getInstance();
  //Calendar类型的对象转换为Date对象
  Date d1 = c6.getTime();
  //Date类型的对象转换为Calendar对象
  Calendar c7 = Calendar.getInstance();
  c7.setTime(d);
  5、Calendar对象和相对时间之间的互转
  Calendar c8 = Calendar.getInstance();
  long t = 1252785271098L;
  //将Calendar对象转换为相对时间
  long t1 = c8.getTimeInMillis();
  //将相对时间转换为Calendar对象
  Calendar c9 = Calendar.getInstance();
  c9.setTimeInMillis(t1);
  在转换时,使用Calendar类中的getTimeInMillis方法可以将Calendar对象转换为相对时间。在将相对时间转换为 Calendar对象时,首先创建一个Calendar对象,然后再使用Calendar类的setTimeInMillis方法设置时间即可。
  应用示例
  下面以两个简单的示例介绍时间和日期处理的基本使用。
  1、计算两个日期之间相差的天数
  例如计算2010年4月1号和2009年3月11号之间相差的天数,则可以使用时间和日期处理进行计算。
  该程序实现的原理为:首先代表两个特定的时间点,这里使用Calendar的对象进行代表,然后将两个时间点转换为对应的相对时间,求两个时间 点相对时间的差值,然后除以1天的毫秒数(24小时X60分钟X60秒X1000毫秒)即可获得对应的天数。实现该示例的完整代码如下:
  import java.util.*;
  /**
  * 计算两个日期之间相差的天数
  */
  public class DateExample1 {
  public static void main(String[] args) {
  //设置两个日期
  //日期:2009年3月11号
  Calendar c1 = Calendar.getInstance();
  c1.set(2009, 3 - 1, 11);
  //日期:2010年4月1号
  Calendar c2 = Calendar.getInstance();
  c2.set(2010, 4 - 1, 1);
  //转换为相对时间
  long t1 = c1.getTimeInMillis();
  long t2 = c2.getTimeInMillis();

有帮助
(0)
0%
没帮助
(0)
0%