栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

日期类Date以及日期相关类

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

日期类Date以及日期相关类

  • 日期类Date以及日期相关类
    1. Date类的构建方式(属于java.util包)
    1. 使用构造方法创建日期对象

    Date  date=new  Date();//系统的当前时间

    Date  date=new  Date(long型参数值);//从1970年1月1日0点0分开始描述的毫秒数

    1. 使用日期对象的getTime()方法获取日期的毫秒数(1970 1.1 0:00)

    1. 日期的常用方法

    package com.test;

    import java.util.*;

    public class DemoClass2 {

        public static void main(String[] args) {

            Date date1=new Date();

            System.out.println("date1-->"+date1.toLocaleString());

            //10天前

            Date date2=new Date(System.currentTimeMillis()-24*10*60*60*1000);

            System.out.println("date2-->"+date2.toLocaleString());

            //测试date1是否在date2之后

            boolean flag=date1.after(date2);

            if(flag){

                System.out.println(date1.toLocaleString()+"在"+date2.toLocaleString()+"之后!");

            }

            //测试date1是否在date2之前

            flag=date1.before(date2);

            if(flag){

                System.out.println(date1.toLocaleString()+"在"+date2.toLocaleString()+"之前!");

            }else{

                System.out.println(date1.toLocaleString()+"不在"+date2.toLocaleString()+"之前!");

            }

            //比较date1和date2的顺序

            int code=date1.compareTo(date2);

            System.out.println("code-->"+code);

            if(code>0){

                System.out.println("date1在date2之后!");

            }

        }

    }

    1. 日期格式化类DateFormat(抽象类)
    1. 对日期进行格式化处理

    package com.test;

    import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;

    import java.text.DateFormat;

    import java.text.ParseException;

    import java.util.*;

    public class DemoClass3 {

        public static void main(String[] args)  {

            Date date=new Date();//创建日期对象

            DateFormat dateFormat=DateFormat.getDateInstance();//获取日期格式器

            DateFormat dateTimeFormat=DateFormat.getDateTimeInstance();//获取日期时间格式器

            DateFormat timeFormat=DateFormat.getTimeInstance();//获取时间的格式器

            String sdate=dateFormat.format(date);//将日期转为字符串的日期描述

            String datetime=dateTimeFormat.format(date);//将日起转为字符串的日期事件描述

            String time=timeFormat.format(date);//将日期转为字符串的时间描述

            System.out.println("日期:"+sdate);

            System.out.println("日期时间:"+datetime);

            System.out.println("时间:"+time);

            System.out.println("============================================");

            try {

                //将日期格式的字符串转为日期对象

                Date date2=dateFormat.parse("2021-5-17");//解析指定的日期

                //date1和date2相差几天

                long d1=date.getTime();

                long d2=date2.getTime();

                long d3=d1-d2;//毫秒数

                //计算相差的天数

                long divday=Math.round((double)d3/(24*60*60*1000));

                System.out.println("date1和date2相差:"+divday+"天!"+"相差:"+divday/30+"月!");

            } catch (ParseException e) {

                e.printStackTrace();

            }

        }

    }

    日期:2021-11-17

    日期时间:2021-11-17 9:53:51

    时间:9:53:51

    date1和date2相差:184天!相差:6月!

    1. 日期转为字符串

     String sdate=dateFormat.format(date);//将日期转为字符串的日期描述

            String datetime=dateTimeFormat.format(date);//将日起转为字符串的日期事件描述

            String time=timeFormat.format(date);//将日期转为字符串的时间描述

            System.out.println("日期:"+sdate);

            System.out.println("日期时间:"+datetime);

            System.out.println("时间:"+time);

    1. 将字符串转为日期对象(字符串必须满足日期格式样式)

     //将日期格式的字符串转为日期对象

     Date date2=dateFormat.parse("2021-5-17");//解析指定的日期

    在使用parse方法时,必须进行异常处理。

    1. 日期格式的样式

    示例:

    package com.test;

    import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

    import java.util.*;

    import java.text.*;

    public class DemoClass4 {

        public static void main(String[] args) {

            Date date=new Date();

            DateFormat df0=DateFormat.getDateInstance();

            DateFormat df1=DateFormat.getDateInstance(DateFormat.FULL);

            DateFormat df2=DateFormat.getDateInstance(DateFormat.SHORT);

            DateFormat df3=DateFormat.getDateInstance(DateFormat.MEDIUM);//默认

            DateFormat df4=DateFormat.getDateInstance(DateFormat.LONG);//长格式

            DateFormat df5=DateFormat.getDateInstance(DateFormat.FULL);

            System.out.println("默认--->"+df0.format(date));

            System.out.println("DateFormat.FULL--->"+df1.format(date));

            System.out.println("DateFormat.SHORT--->"+df2.format(date));

            System.out.println("DateFormat.MEDIUM--->"+df3.format(date));

            System.out.println("DateFormat.LONG--->"+df4.format(date));

            System.out.println("DateFormat.FULL--->"+df5.format(date));

        }

    }

    默认--->2021-11-17

    DateFormat.FULL--->2021年11月17日 星期三

    DateFormat.SHORT--->21-11-17

    DateFormat.MEDIUM--->2021-11-17

    DateFormat.LONG--->2021年11月17日

    DateFormat.FULL--->2021年11月17日 星期三

    日期风格适用于日期格式器。

  • 自定义的日期格式类SimpleDateFormat
    1. 自定义日期格式
    2. 创建SimpleDateFormat日期格式化对象(指定日期格式
    3. 示例

    package com.test;

    import java.util.*;

    import java.text.*;

    public class SimpleDateFormatDemo {

        public static void main(String[] args) {

            Date date=new Date();

            Scanner input=new Scanner(System.in);

            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

            String sdate= simpleDateFormat.format(date);//将日起转为字符串

            System.out.println("当前日期:"+sdate);

            //将字符串转为日期

            System.out.println("请输入日期(1900-01-01):");

            String mydate=input.nextLine();

            try {

                //将日期字符串转为日期对象

                Date date1=simpleDateFormat.parse(mydate);

                System.out.println(date1);

            } catch (ParseException e) {

                e.printStackTrace();

            }

        }

    }

  • Calendar日历类(抽象类)的使用
    1. 日历类的创建方式

    Calendar cld=Calendar.getInstance();//空的构建

    Calendar calendar2=Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"),Locale.CHINA);

    示例如下:

    package com.test;

    import java.util.*;

    public class CalendarDemo1 {

        public static void main(String[] args) {

            Calendar calendar=Calendar.getInstance();

            //System.out.println(calendar.getWeekYear());

            //使用指定时区和语言环境获得日历对象

            Calendar calendar2=Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles"),Locale.CHINA);

            System.out.println("获取年份:"+calendar2.get(Calendar.YEAR));//获取年份

            System.out.println("获取月份:"+(calendar2.get(Calendar.MONTH)+1));

            System.out.println("获取日期:"+(calendar2.get(Calendar.DAY_OF_MONTH)+1));//每月的第1天从0开始计数

            System.out.println("获取星期:"+(calendar2.get(Calendar.DAY_OF_WEEK)));//每星期的第一天从0开始计数

            System.out.println("");

        }

    }

    获取年份:2021

    获取月份:11

    获取日期:17

    获取星期:3

    获取星期的第x天:3

    1. 使用Calendar 类设置日期(赋值)

    package com.test;

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;

    import java.util.Locale;

    import java.util.TimeZone;

    public class CalendarDemo2 {

        public static void main(String[] args) {

            Calendar calendar=Calendar.getInstance();

            //设置日期值

            calendar.set(2011,12,17,10,11,11);

            //通过calendar获取日期对象

            Date date=calendar.getTime();

            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

            String sdate=simpleDateFormat.format(date);

            System.out.println("日期:"+sdate);

        }

    }

    课堂练习:

    1. 完成上述所有代码
    2. 从键盘输入日期,分别使用DateFormat、SimpleDateFormat和Calendar类进行包装处理。
    3. 编写工具类,对日起进行格式化转换,分别转为字符串和日期类型的数据

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/704245.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号