Date与相关类

Date:
package com.Date;

import java.util.Date;

public class DateTest {
    
    public static void main(String[] args){
        
        
    }
    
    public static void Date(){
        //1、无参构造方法,得到的是当前时间的date对象
        /*Date d=new Date();*/
        /*System.out.println(d.toLocaleString());
        System.out.println(d.toGMTString());
        System.out.println(d.toString());*/
        
        //2、参数是一个long值  Date(long a)
        //long的值代表的是与1900-01-01 00:00:00相差的毫秒值
        /*Date d2=new Date(new Long(34765237));
        System.out.println(d2.toLocaleString());*/
        //long值的获取可以先使用Date的parse方法解析字符串类型的时间
        /*long t1=Date.parse("Mon 6 Jan 1997 13:3:00");//注意只能解析特定格式的字符串
        Date d3=new Date(t1);
        System.out.println(d3.toLocaleString());*/
        
        //3、参数为年月日或者更多
        //Date(int year,int mouth,int date)
        //Date(int year,int mouth,int date,int hrs,int min)
        //Date(int year,int mouth,int date,int hrs,int sec)
        /*Date d4=new Date(1996-1900,10,12);
        System.out.println(d4.toLocaleString());*/
        /**
         * 参数说明
         * year的值为:x-1900,x>=1900
         * mouth的值为:0~11,代表1~12月,索引为0
         * date的值为:1~31
         * hrs的值在:0~23.从午夜到凌晨1点间hrs=0,从中午到下午1点间hrs=12
         * 和sec的值在0~59间
         */
        
        /**
         * 获取Date对象中的信息,一系列get方法
         * getYear()获取实际年份-1900的值
         * getMonth()月
         * getDate()日
         * getHours()小时
         * getMinutes()分钟
         * getSenconds()秒
         * getDay()星期
         * getTime() 毫秒值,与1900-0-0 0:00:00:00的差
         * getTimezoneOffset() getTimezoneOffset() 方法可返回格林威治时间和本地时间之间的时差,以分钟为单位。
         *
         *当然Date有Year等字段的get方法,就有对应的set方法,我就不重复了
         */
        Date d=new Date();
        System.out.println(d.getYear()+"\n" +
                d.getMonth() +"\t"+
                d.getDate()+"\t" +
                d.getHours()+"\t" +
                d.getMinutes()+"\t" +
                d.getSeconds()+"\t" +
                d.getDay()+"\t" +
                d.getTime()+"\t" +
                d.getTimezoneOffset()+"\n"+
                d.toLocaleString()
                );
        
        /*parse(String s) 前面用到的将字符串类型的时间转换成long类型的时间差的方法
         *字符串一般这两种格式:
         * 1、"Sat, 12 Aug 1995 13:30:00 GMT"
         * 2、"Sat, 12 Aug 1995 13:30:00 GMT+0430"
         * 
         * 后面被被DateFormat.parse(String s)代替
         */
        
        /**
         * 日期对象的比较,Date对象和它的参数对象的比较
         * before(Date when)
         * after(Date when)
         * equals(Object obj)
         * int compareTo(Date anotherDate) 比较两个日期的顺序
         * int compareTo(Object obj) 如果obj是Date对象,与上一个一样,如果不是会报类型转换错误
         * 
         */
        
        /**
         *  toString()  将Date对象转换成如下格式的String
         *  dow mon dd hh:mm:ss zzz yyyy (星期 月份....时区 年份)
         *  toLocaleString()
         *  按当前格式生成反映这个Date对象的字符串。我这里的格式是 2016-5-8 0:01:49这种格式
         *  toGMTString() 将Date对象转换成如下格式的String
         *  d mon yyyy hh:mm:ss
         */
    }
    

}
View Code

 DateFormat:

package com.date;

import java.text.DateFormat;
import java.util.Date;

import org.junit.Test;

public class SimpleFormatDateTest {
    Date date=new Date();
    int def=DateFormat.DEFAULT;
    int ful=DateFormat.FULL;
    int sho=DateFormat.SHORT;
    int lon=DateFormat.SHORT;
    int med=DateFormat.MEDIUM;
    
    /**
     * DEFAULT
     * FULL
     * SHORT
     * LONG
     * MEDIUM
     * 只支持5中模式,日期选择器或者日期时间选择器
     */
    
    public void method1(){
        
        DateFormat df1=DateFormat.getDateInstance();//获取日期格式器,默认日期风格
        System.out.println(df1.format(date));    
    }
    
    public void method2(){
        DateFormat df1=DateFormat.getDateInstance(def);
        DateFormat df2=DateFormat.getDateInstance(ful);
        DateFormat df3=DateFormat.getDateInstance(sho);
        DateFormat df4=DateFormat.getDateInstance(lon);
        DateFormat df5=DateFormat.getDateInstance(med);
        System.out.println(df1.format(date));    
        System.out.println(df2.format(date));    
        System.out.println(df3.format(date));    
        System.out.println(df4.format(date));    
        System.out.println(df5.format(date));    
    }
    @Test
    public void method3(){
        DateFormat df1=DateFormat.getDateTimeInstance(def,def);
        DateFormat df2=DateFormat.getDateTimeInstance(def,ful);
        DateFormat df3=DateFormat.getDateTimeInstance(def,sho);
        DateFormat df4=DateFormat.getDateTimeInstance(def,lon);
        DateFormat df5=DateFormat.getDateTimeInstance(def,med);
        System.out.println(df1.format(date));    
        System.out.println(df2.format(date));    
        System.out.println(df3.format(date));    
        System.out.println(df4.format(date));    
        System.out.println(df5.format(date));
    }

}
DateFormat

SimpleDateFormat:

package com.date;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.junit.Test;

public class DateFormatTest {
    /**
     * SimpleDateFormat与传统的DateFormat的最大区别就是它可以自定义格式器
     */
    @Test
    public void method1(){
        Date date=new Date();
        String tm="2013-02-10";
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy");
        System.out.println(sdf1.format(date));
        Date d2=null;
        try {
            d2=sdf1.parse(tm);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        System.out.println(sdf1.format(d2));//format返回的是指定格式的StringBuffer对象
        
    }

}
View Code

.java.util.Calendar类。

日期类不够国际化所以被Calendar替代了一些功能。

public abstract class Calendarextends Objectimplements Serializable, Cloneable, Comparable<Calendar>

 

 

(1)概述。

Calendar类是一个抽象类,但是该类提供了一个方法能够返回一个该类的实例对象。

(2)getInstance()方法。

该方法有多个重载形式:

static Calendar getInstance()
          使用默认时区和语言环境获得一个日历。
static Calendar getInstance(Locale aLocale)
          使用默认时区和指定语言环境获得一个日历。
static Calendar getInstance(TimeZone zone)
          使用指定时区和默认语言环境获得一个日历。
static Calendar getInstance(TimeZone zone, Locale aLocale)
          使用指定时区和语言环境获得一个日历。

(3)get方法。

 int get(int field)
          返回给定日历字段的值。

该方法实现了很多Date类中已经过时的方法。

通过这个方法可以获取到Date对象的各个字段。

field是字段的意思,几个重要的字段:

YEAR
          指示年的 getset 的字段数字。

MONTH
          指示月份的 getset 的字段数字。

DAY_OF_MONTH
          getset 的字段数字,指示一个月中的某天。

HOUR_OF_DAY
          getset 的字段数字,指示一天中的小时。

MINUTE
          getset 的字段数字,指示一小时中的分钟。

SECOND
          getset 的字段数字,指示一分钟中的秒。

(4)set方法。

该方法也有多个重载形式。

 void set(int field, int value)
          将给定的日历字段设置为给定值。
 void set(int year, int month, int date)
          设置日历字段 YEARMONTHDAY_OF_MONTH 的值。
 void set(int year, int month, int date, int hourOfDay, int minute)
          设置日历字段 YEARMONTHDAY_OF_MONTHHOUR_OF_DAYMINUTE 的值。
 void set(int year, int month, int date, int hourOfDay, int minute, int second)
          设置字段 YEARMONTHDAY_OF_MONTHHOURMINUTESECOND 的值。

该方法能够将当前对象的各个字段值设置为指定值。

(5)add方法。

 

abstract  void add(int field, int amount)
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。
posted @ 2016-05-09 08:07  guodaxia  阅读(173)  评论(0)    收藏  举报