Java日期类的使用

来源:互联网 发布:知秋的意思 编辑:程序博客网 时间:2024/06/06 18:27
Date :         getTime()毫秒 、setTime()(date)


SimpleDateFormate :   Formate(Date)(字符串)、 parse(String s)(date)


Calendar :      getInstance()(类)、set() 、get()、getActualMaximum()、add()、


             gettime()、setTime(Date)、

    getInstance().getTime()   (date)



字符串、Date、Calendar之间的转换


    /**     * 测试Date 的getTime与setTime     * @param args     */    public static void main(String[] args) {        Date date =new Date();        System.out.println(date);        /*         * 计算明天此刻的时间         */        long time =date.getTime();        time = time+24*60*60*1000;        date.setTime(time);        System.out.println(date);    }

将Date格式化为String    String format(Date d)

将String解析为Date    Date   parse(String s)

/**     * 1.获取用户输入的生日     * 2.将其转换为Date     * 3.创建一个Date用于表示当前系统时间     * 4.用当前系统时间的毫秒值减去出身当天的毫秒值     * 5,将差初一一天的毫秒值     * 6.商就是经过的天数     * @param args     * @throws ParseException      */    public static void main(String[] args) throws ParseException {        Scanner scanner =new Scanner(System.in);        System.out.println("以1992-05-08格式输入生日:");        String shengri=scanner.nextLine();        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");        Date date = sdf.parse(shengri);        Date now = new Date();        long cha;        cha= now.getTime()-date.getTime();        System.out.println(cha);        int day;        day = (int) (cha/(3600*24*1000));        System.out.println("恭喜你活了"+day+"天");    }

public static void main(String[] args) {    /*     * 使用Calendar提供的静态方法获取适当的实例     * 默认创建calendar表示的是当前系统的时间     */        Calendar calendar  = Calendar.getInstance();        /*         * 查看对象具体的类型         * obj.getClass().getName()         */        String className            =calendar.getClass().getName();        System.out.println(className);                //输出的是java.util.GregorianCalendar 的toString返回值        System.out.println(calendar);        /*         * calendar 定义了一个方法         * Date getTime()         * 返回一个描述改Calendar表示的时间的Date对象         *          */            Date date =calendar.getTime();            System.out.println(date);                }



设置日期及时间分量

Calendar提供了一种通用的设置时间的方式:
void set(int field,int value)
该方法可以通过对不同的时间分量分别设置不同的值。Calendar对不同的时间分量提供了相应的常量,我们在使用set方法设置时,第一个参数就应当使用对应的常量作为时间分量。

复制代码
public class TestCalendar {    /**     * @param args     */    public static void main(String[] args) {        /*         * 设置时间使用Calendar提供的方法         * void set (int field,int value)         * 对给定的时间分量设定给定的值         *          * 对Calendar 设置时间为2013-12-25         */        Calendar calendar = Calendar.getInstance();        calendar.set(Calendar.YEAR,2013);        calendar.set(Calendar.MONTH,11);        /*         * 对于几号而言 calendar 提供了两个时间分量         * 意义完全相同,任选其一         * DAY_OF_MONTH         * DATE         */        calendar.set(Calendar.DATE,25);        calendar.set(Calendar.DAY_OF_MONTH, 25);            /*         * 超过该时间分量允许的最大值后,会向上进位         * 日想月进位 月向年进位         */                calendar.set(Calendar.DATE,32);        System.out.println(calendar.getTime());    }}
复制代码

3. 获取时间分量对应的值

Calendar提供了一种通用的获取时间分量的方式:
int get(int field)
该方法可以通过对不同的时间分量获取相应的值。Calendar对不同的时间分量提供了相应的常量,我们在使用get方法获取时,参数就应当使用对应的常量作为时间分量。

复制代码
/** * 设置为2014-04-23 * @author Administrator * */class TestGet{    public TestGet() {        Calendar calendar_get= Calendar.getInstance();        calendar_get.set(Calendar.YEAR,2014);        calendar_get.set(Calendar.MONTH,3);        calendar_get.set(Calendar.DATE,23);        /*         * 获取今天是周几         * int get(int field)         * 获取给定的时间分量所对应的值         * 美国人 周日为一周的第一天         */        System.out.println("今天是周"+(calendar_get.get(Calendar.DAY_OF_WEEK)==1?"日":calendar_get.get(Calendar.DAY_OF_WEEK)-1));        /*         * 获取时间 几点         * HOUR            12小时         * HOUR_OF_DAY     24小时制         */        System.out.println(calendar_get.get(Calendar.HOUR_OF_DAY)+"点"+ calendar_get.get(Calendar.MINUTE)+"分"+calendar_get.get(Calendar.SECOND)+"秒");        /*         * 查看今年过去多少天了         * DAY_OF_YEAR         */        System.out.println("已经过了"+calendar_get.get(Calendar.DAY_OF_YEAR)+"天");    }}
复制代码

 

复制代码
/** * 获取某个时间分量所容许的最大值 */class TestCalendarDemo4{    public static void main(String[] args) {        /*         * int         * 获取给定时间分量所允许的最大值         */        //这个月最多多少天        Calendar calendar_max= Calendar.getInstance();                int days =calendar_max.getActualMaximum(Calendar.DAY_OF_MONTH);        System.out.println(days);                //今年总共多少天        days = calendar_max.getActualMaximum(Calendar.DAY_OF_YEAR);                System.out.println(days);    }}
复制代码
复制代码
/** * 输出今年每月的最后一天 * 就是每月多少天 * @author Administrator * */class TestMaxmooth{    public static void main(String[] args) {                Calendar calendar_last = Calendar.getInstance();        //for(int i=Calendar.JANUARY;i<=Calendar.DECEMBER;i++){}                for(int i=0;i<12;i++){            calendar_last.set(Calendar.MONTH,i);            System.out.println(i+1+"月总共:"+calendar_last.getActualMaximum(Calendar.DAY_OF_MONTH));        }    }    }
复制代码
复制代码
/**add使用*/class Calendar_add{    public static void main(String[] args) {        Calendar calendaradd = Calendar.getInstance();                System.out.println(calendaradd.getTime());        /*         * 当前日期加1         */        calendaradd.add(Calendar.DAY_OF_YEAR, 1);        System.out.println(calendaradd.getTime());        //加两年        calendaradd.add(Calendar.YEAR, 2);        System.out.println(calendaradd.getTime());                //加到32 自动切换        calendaradd.add(Calendar.DAY_OF_YEAR, 11);        System.out.println(calendaradd.getTime());                //减去12小时        calendaradd.add(Calendar.HOUR_OF_DAY, 12);        System.out.println(calendaradd.getTime());        }}
复制代码

 

 

复制代码
字符串  dateCalendar 之间如何转换/** * 测试Calendar 的setTime */class  Testsettime{    public static void main(String[] args) throws ParseException {        /*         * void setTime(Date date)         * 使当前Calendar对象描述给定的Date对象所表示的日期         *          * 输入女朋友的今年的生日 ,          * 输出明年女朋友的生日是星期几         *          * 1.创建Scanner用于获取用户输入的日期         * 2.将日期通过SimpleDateFormate转换为Date         * 3.将date 转换为Calendar         * 4.将Calendar加上1年         * 5.在通过Calendar 获取对应的Date         * 6.通过SimpleDateFormate输出成目标格式         *          */        Scanner scanner = new Scanner(System.in);        System.out.println("以2012-01-02  格式输入女朋友的生日");        String shengri = scanner.nextLine();        //2        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd");        作用: 将字符串转换为date        Date date=sdf.parse(shengri);                System.out.println(date);                Calendar calengril= Calendar.getInstance();        作用:将date转换为calendar        calengril.setTime(date);        calengril.add(Calendar.YEAR, 1);        calengril.get(Calendar.DAY_OF_WEEK);        作用:将calendar 转换为date        date= calengril.getTime();        作用:将date转换为字符串        System.out.println(sdf.format(date)+"星期"+calengril.get(Calendar.DAY_OF_WEEK-1));    }}

原创粉丝点击