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点