java里的时间类

来源:互联网 发布:淘宝台服战网点 编辑:程序博客网 时间:2024/04/30 23:29

1.Calendar 和Date异同 

  •   Date 类是一个较老的类,里面的很多方法都应经弃之不用,现在主要和 DateFormat 的一个具体子类,SimpleDateFormat 配合经行时间格式的转换。

 

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");dateFormat.format(new Date());// 返回结果 11:16:34.988: D/(16341): 2012-10-11 11:16:34

  • Date类是对当前时间的操作,那么Calendar 就是对指定时间的操作 Calendar 通过calendar.set(year, month, day);方法设置指定的时间。calendar.add(field, value)根据value的值 设置提前或者延后的时间。例如calendar.add(Calendar.DATE, 6);表示6天后。

2.实例  根据以上介绍的三个方法,可以取得一个6天为一段的数组  内容如下10-01~10-11

代码如下  

public static String[] getWeekArray() {String[] dateArray;Calendar calendar = GregorianCalendar.getInstance();dateArray = new String[calendar.get(Calendar.WEEK_OF_YEAR)];SimpleDateFormat sdf = new SimpleDateFormat("M-dd");for (int i = 0; i < dateArray.length; i++) {String date1 = sdf.format(calendar.getTime());calendar.add(Calendar.DATE, -6);String date = sdf.format(calendar.getTime());dateArray[i] = date + "~" + date1;calendar.add(Calendar.DATE, -1);}return dateArray;}
打印结果 如下


3.Long时间戳类 网上查了一下发现巴拉巴拉一大堆,也不知道是做什么,我目前是没这方面的需求,所以只将用法贴出   时间戳与 Date类的转换

SimpleDateFormat format =   new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" );       Long time=new Long(445555555);       String d = format.format(time);       Date date=format.parse(d);       System.out.println("Format To String(Date):"+d);       System.out.println("Format To Date:"+date);
结果

Format To String(Date):1970-01-06 11:45:55
Format To Date:Tue Jan 06 11:45:55 CST 1970


3.设置时间和当前时间的比较

   year = 1   monthOfYear = 2   dayOfMonth = 29
   例如 设置calendar.set(year, monthOfYear, dayOfMonth);  
            当前时间 GregorianCalendar.getInstance();
           打印结果 当前时间值Fri Mar 29 14:02:19 格林尼治标准时间+0800 2013
                            我设置的时间值Fri Mar 29 14:02:19 格林尼治标准时间+0800 2013    
            比较   calendar.getTime() != GregorianCalendar.getInstance().getTime()
            实际上获取他们相差几毫秒,只有打印时间戳时才能发现
        正确比较方法

        String date1 = dateFormat.format(calendar.getTime());
String date2 = dateFormat.format(currentCalendar.getTime());
if (dateFormat.parse(date1).compareTo(dateFormat.parse(date2)) == 0) {
print("时间相等");
return;
}
       先提取出日期,然后进行比较
4. date 和 Calendar  互相转换
    

Calendar和Date的转化(1) Calendar转化为DateCalendar cal=Calendar.getInstance();Date date=cal.getTime();(2) Date转化为CalendarDate date=new Date();Calendar cal=Calendar.getInstance();cal.setTime(date);




原创粉丝点击