Java时间类

本文详细介绍了Java中java.util.Date、java.text.SimpleDateFormat和java.util.Calendar三个时间类的常用方法,包括时间获取、日期字符串转换、日期提取等,并通过代码示例进行演示。重点讲解了如何通过SimpleDateFormat进行日期格式化以及Calendar类中修改和获取日期各部分的方法。
摘要由CSDN通过智能技术生成

2021年12月9日!!!不说废话,基本介绍都是我的理解,不懂直接看代码

Java中常用的时间类

java.util.Date  
java.text.SimpleDateFormat  
java.util.Calendar

常用方法(我儿豁,没得时间看,直接用,看我解释)

Date:getTime() //获取系统时间,基本不用了
SimpleDateFormate:format(Date)parse(String s)  //1.日期转字符串;2.字符串转日期
Calendar:getInstance()gettime()set()get()add()setTime(Date)
//1.获取系统时间;2.格式化显示;3.改年,月...;4.获取年、月...;5.加减年、月...;6.改成你设置的时间

基本介绍

一、java.util.Date
儿豁嘛,它是java.sql.Date,Time,Timestamp的父类,是从1900年开始到现在的时间。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,被java.util.Calendar类所取代。
二、java.text.SimpleDateFormat
没什么屌用,是DateFormat(抽象类)的直接子类,提供字符串到日期,日期到字符串的转换。
三、java.util.Calendar(抽象类)
儿豁嘛,就是获取系统时间,提取日期中年、月、日,输出为int型。

代码

一、获取系统时间
 		//1.Data获取默认格式的日期
        Date date =new Date();
        System.out.println(date);
        //2.Data获取1970年1月1日 8点0分0秒到现在的毫秒数
        Date date2 =new Date();
        System.out.println(date2.getTime());
        //3.Calendar获取默认格式的日期
        Calendar calendar = Calendar.getInstance();
        System.out.println(calendar.getTime());
        //1结果:Thu Dec 09 18:18:27 CST 2021
        //2结果:1639045107976
        //3结果:Thu Dec 09 18:43:52 CST 2021
二、日期和字符串转换
		//设置日期格式
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            //1、日期转字符串(随便格式化成我们习惯的日期格式了)
            Date date3 = Calendar.getInstance().getTime();
            String dateStringParse = sdf.format(date3);
            System.out.println(dateStringParse);
            //2、字符串转日期
            String dateString = "2017-12-20 14:02:08";
            Date dateParse = sdf.parse(dateString);
            System.out.println(dateParse);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //1结果:2021-12-09 18:51:15
        //2结果:Wed Dec 20 14:02:08 CST 2017

常用格式
在这里插入图片描述

//常用例子
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        try {
            Date date4 = new Date();
            String dateStringParse = sdf.format(date4);
            System.out.println(dateStringParse);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //结果:2021年12月09日 19时06分57秒
三、日期提取
1、提取系统日期中年、月、日...
		Calendar cal =Calendar.getInstance();
        int year = cal.get(Calendar.YEAR);//获取年份
        int month=cal.get(Calendar.MONTH);//获取月份
        int day=cal.get(Calendar.DATE);//获取日
        int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
        int minute=cal.get(Calendar.MINUTE);//分
        int second=cal.get(Calendar.SECOND);//秒
        int WeekOfYear = cal.get(Calendar.DAY_OF_WEEK);//一周的第几天
        System.out.println("现在的时间是:公元"+year+"年"+month+"月"+day+"日"+hour+"时"+minute+"分"+second+"秒,星期"+WeekOfYear);
        //结果:现在的时间是:公元2021年11月9日19时20分35秒,星期5

常用常量
在这里插入图片描述

2、儿豁,这个我经常用,提取字符串中需要的...
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=null;
        try {
            date=sdf.parse("2017-12-20 12:19:19");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar cal =Calendar.getInstance();
        cal.setTime(date);
        int hour=cal.get(Calendar.HOUR_OF_DAY);//小时
        System.out.println(hour+"点");
        //结果:12点
3、显示的更多信息,显示上午下午,儿豁嘛,记不住就自己写if
		Date date = new Date();
        DateFormat df1 = DateFormat.getDateInstance();//日期格式,精确到日
        System.out.println(df1.format(date));
        DateFormat df2 = DateFormat.getDateTimeInstance();//可以精确到时分秒
        System.out.println(df2.format(date));
        DateFormat df3 = DateFormat.getTimeInstance();//只显示出时分秒
        System.out.println("只显示出时分秒:"+df3.format(date));
        DateFormat df4 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.FULL); //显示日期,周,上下午,时间(精确到秒)
        System.out.println("显示日期,周,上下午,时间(精确到秒):"+df4.format(date));
        DateFormat df5 = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG); //显示日期,上下午,时间(精确到秒)
        System.out.println("显示日期,上下午,时间(精确到秒):"+df5.format(date));
        DateFormat df6 = DateFormat.getDateTimeInstance(DateFormat.SHORT,DateFormat.SHORT); //显示日期,上下午,时间(精确到分)
        System.out.println("显示日期,上下午,时间(精确到分):"+df6.format(date));
        DateFormat df7 = DateFormat.getDateTimeInstance(DateFormat.MEDIUM,DateFormat.MEDIUM); //显示日期,时间(精确到分)
        System.out.println("显示日期,时间(精确到分):"+df7.format(date));
        //结果:2021年12月9日
        //2021年12月9日 下午7:35:25
        //只显示出时分秒:下午7:35:25
        //显示日期,周,上下午,时间(精确到秒):2021年12月9日星期四 中国标准时间 下午7:35:25
        //显示日期,上下午,时间(精确到秒):2021年12月9日 CST 下午7:35:25
        //显示日期,上下午,时间(精确到分):2021/12/9 下午7:35
        //显示日期,时间(精确到分):2021年12月9日 下午7:35:25
四、剩下的方法讲解
主要是Calendar里面剩下的方法了(就在日期提取的第二个讲)
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date=null;
        try {
            date=sdf.parse("2017-12-20 12:19:19");
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Calendar cal =Calendar.getInstance();//系统日期
        System.out.println(cal.getTime());
        cal.setTime(date);//我设置的日期
        System.out.println(cal.getTime());//小时改成15
        cal.set(Calendar.HOUR_OF_DAY,15);
        System.out.println(cal.getTime());
        cal.add(Calendar.HOUR_OF_DAY,1);//小时加1
        System.out.println(cal.getTime());
        int hour=cal.get(Calendar.HOUR_OF_DAY);//提取小时
        System.out.println(hour+"点");
        //结果:Thu Dec 09 21:07:38 CST 2021
        //Wed Dec 20 12:19:19 CST 2017
        //Wed Dec 20 15:19:19 CST 2017
        //Wed Dec 20 16:19:19 CST 2017
        //16点
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值