JAVASE之日期操作

来源:互联网 发布:宾馆管理系统数据库 编辑:程序博客网 时间:2024/06/09 17:49

java日期操作~~

java的时间用Date类表示

这里写图片描述

这里写图片描述

SimpleDateFormat

日期与字符串相互转

这里写图片描述
这里写图片描述

016-09-06 09:30:25
yyyy-MM-dd HH:mm:ss

类似于正则,让他以这些字符为标准转换

将Date转换为 2016-09-06 09:30:25 这种日期:
如代码:

public static void main(String[] args) {        // TODO Auto-generated method stub        Date date = new Date();        //输出Date默认的toString方法的返回值        System.out.println(date);        /*         * 希望输出的格式是:         * 2016-09-06 09:30:25         * yyyy-MM-dd HH:mm:ss         */        //先创建个字符串是用来定义日期格式        String dateformat ="yyyy-MM-dd HH:mm:ss E a";        //创建个SimpleDaeFormat 对象,传入日期格式        SimpleDateFormat sad = new SimpleDateFormat(dateformat);        //对象有个format方法,传入创建的时间对象,返回字符串        String str = sad.format(date);        System.out.println(str);    }

这里写图片描述

将 2016-09-06 09:30:25 日期装换为 Date对象

代码:

public static void main(String[] args) throws ParseException {        // TODO Auto-generated method stub        //要转换为Date的字符串        String str = "2008-08-08 20:08:08";        //创建个匹配要转换字符串时间格式的字符串        String dateformat = "yyyy-MM-dd HH:mm:ss";        //SimpleDateFormat 用传入的字符串时间格式解析字符串,然后创建对象        SimpleDateFormat asd = new SimpleDateFormat(dateformat);        //调用SimpleDateFormat的方法parse转换为Date,那么就要创建Date对象        //会产生异常~~抛出        Date date =  asd.parse(str);        System.out.println(date);    }

这里写图片描述

例子:输入生日计算活了多少天:

代码:

public static void main(String[] args) throws ParseException {        // TODO Auto-generated method stub        /*         * 输入一个生日,输出到今天为止一共活了多少天         * 输入生日,转为Date,获取系统的Date,获取他们的毫秒值         * 然后求差,用该值除以一天的毫秒值,得出天数         *          */        System.out.println("请输入你的生日");        System.out.println("格式如:2016-09-06");        Scanner scanner = new Scanner(System.in);        String input = scanner.nextLine();        //创建日期格式字符串        String dateformat = "yyyy-MM-dd";        SimpleDateFormat asd = new SimpleDateFormat(dateformat);        //将输入的生日转换为Date对象        Date srdate = asd.parse(input);        long srss = srdate.getTime();        //获取系统现在时间        Date xzdate = new Date();        long xzss = xzdate.getTime();        //计算差        long scdate = (xzss-srss)/(24*60*60*1000);        System.out.println("骚年,你已经活了:"+scdate+"天");    }

Calender

本身是抽象类
操作时间 计算时间

这里写图片描述

public static void main(String[] args) {        // TODO Auto-generated method stub        //创建一个Calendar,获取的是阳历        Calendar calendar = Calendar.getInstance();        System.out.println(calendar);        //calendar的getTime获取的是Date        Date date = calendar.getTime();        System.out.println(date);        //用SimpleDateForm来定义日期格式        String dateform = "yyyy-MM-dd";        SimpleDateFormat asd = new SimpleDateFormat(dateform);        //将日期定义为指定格式        String str=  asd.format(date);        System.out.println(str);    }让Calendar表示的是当前Date所表示的时间    public static void main(String[] args) {        //让Calendar表示的是当前Date所表示的时间        Date date = new Date();             Calendar calendar = Calendar.getInstance();             calendar.setTime(date);     }

Calendar设置时间

public static void main(String[] args) {        // TODO Auto-generated method stub        Calendar calendar = Calendar.getInstance();        /*         * 希望表示2008-08-30 10:22:33         *          */        calendar.set(Calendar.YEAR, 2008);        //!!Calendar的月份 是从0开始的!!!8月就写7或者Calendar.AUGUST        calendar.set(Calendar.MONTH, Calendar.AUGUST);        calendar.set(Calendar.DATE, 30);        calendar.set(Calendar.HOUR_OF_DAY, 10);        calendar.set(Calendar.MINUTE, 22);        calendar.set(Calendar.SECOND,33);        //要将calendar要转换为Date,不然不容易看        Date date = calendar.getTime();        System.out.println(date);    }

获取Calendar的时间

注意星期,月份的问题。

public static void main(String[] args) {        Calendar calendar = Calendar.getInstance();        //获取年        int year = calendar.get(Calendar.YEAR);        //获取月,因为月是从0开始的,所以要加1        int month = calendar.get(Calendar.MONTH)+1;        int date = calendar.get(Calendar.DATE);        System.out.println(year+"-"+month+"-"+date);        int w = calendar.get(Calendar.DAY_OF_WEEK);        //星期天返回的是1,不是的话就减1返回        System.out.println("星期:"+(w==1?7:w-1));     }

用Calendar计算时间

public static void main(String[] args) {        Calendar calendar = Calendar.getInstance();        //看15天以后,想做减法的话加负数        //加天的话,要是一年中天,因为有可能超过月份,星期等        calendar.add(Calendar.DAY_OF_YEAR, 15);        Date date = calendar.getTime();        System.out.println(date);    }

这里写图片描述

计算三个月后的十天后的周三是几号

public static void main(String[] args) {        Calendar calendar = Calendar.getInstance();        calendar.add(Calendar.MONTH, 3);        calendar.add(Calendar.DAY_OF_YEAR, 10);        //设置周三,那么就是周三那天了,0是周天那么周三就是4        calendar.set(Calendar.DAY_OF_WEEK,4);        System.out.println(calendar.getTime());    }

这里写图片描述

获取某个时间分量所允许的最大值

public static void main(String[] args) {        Calendar calendar = Calendar.getInstance();        //这个月总共多少天,当前月所运行的最大天数,这个方法,传什么返回什么所允许的最        int days= calendar.getActualMaximum(Calendar.DAY_OF_MONTH);        System.out.println(days);    }

这里写图片描述

0 0
原创粉丝点击