一.Date日期类
1.认识Date日期类
Date类直接new进行时间设置时,其year字段是从1900年开始,month字段是从0开始,例如new Date(1998,5,5),最终得年份为 1900+1998,月份为6月,与预期的结果相悖;可使用system.currentTimeMills()获取当前时间毫秒值,使用构造方法Date(long time),来创建date对象;
2.创建对象
Date date = new Date(); 当前时间对象
Date date = new Date(时间对象) ; 具体某个时间点的对象
3.主要方法
getTime(); 将指定的时间转为时间戳
setTime() ; 将指定的时间戳转为时间
before(); 判断当前时间是否早于指定时间
after() ; 判断当前时间是否晚于指定时间
代码示例:
public class Demo03 {
public static void main(String[] args) {
//日期在开发中常用来储存 生日,下单时间,付款时间,审批时间等
//类 Date 表示特定的瞬间,精确的毫秒
Date date1 = new Date(); //获取当前基于环境的时间
System.out.println(date1);
long time = date1.getTime();
System.out.println(time);
Date date2 = new Date(6000);
System.out.println(date2);
}
}
二.SimpleDateFormat
1.认识SimpleDateFormat
SampleDateFormat:格式和解析日期的类,允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化
SimpleDateFormat:对 Date 数据使用预定义的字符串进行格式转换。
yyyy:年 , MM:月 ,dd: 日 , HH: 小时 ,mm: 分钟 , ss: 秒。
2.创建对象
SimpleDateFormat sdf = new SimpleDateFormat(“模板样式”);
样式例如: yyyy-MM-dd HH:mm:ss
3.主要方法
format(); 将date对象格式化为对应的模板的样式
parse(); 将格式化的模板对象, 解析为date对象, 注意解析时的模板必须与创建对象时的模板一致;
代码示例:
public class Demo04 {
public static void main(String[] args) throws ParseException {
//SimpleDateFormat 用来实现 日期 和 字符串 之间的相互转换
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date1 = new Date();
//把 日期 转换成指定格式的 字符串
String format = sdf.format(date1);
System.out.println(format);
//把指定格式的 字符串 转换成 日期
String time = "2022/12/02 17:00:32";
Date date2 = sdf.parse(time);
System.out.println(date2);
}
}
三.calendar
1.认识calendar
Calendar 抽象类, 主要是对日历中的一些方法使用, 日期的计算 , 判断时间的。
2.创建对象
Calendar cal = Calendar.getInstance();
3.主要方法
int get(int field) 通过指定的字段获得对应的值 -> 获得当前的年月日…
set(int field,int value) 给指定的字段设置值,注意把新值覆盖之前的这个字段值,会自动的进位
add(int field,int amount) 这个方法和set差不多,但是把amount的值累加到当前设置的字段原有的值之上
setTime(Date d) 可以直接把一个Date设置进去
Date getTime() 可以获得日历对象中的当前日期对象
代码示例:
public class Demo06 {
public static void main(String[] args) {
//Calendar 类是一个抽象类,可以通过Calendar 的 getInstance 的方法返回一个Calendar 对象
Calendar calendar = Calendar.getInstance();
Date date1 = calendar.getTime();//获取当前系统的时间
System.out.println(date1);
Long timeInMillis = calendar.getTimeInMillis();
System.out.println("当前的毫秒值:"+timeInMillis);
TimeZone timeZone = calendar.getTimeZone();
System.out.println("时区:"+timeZone);
//get方法可以根据 指定的日历字段 获取时间对应的值
int year = calendar.get(Calendar.YEAR);
System.out.println("年份:"+year);
int month = calendar.get(Calendar.MONTH);
System.out.println("月份:"+(month+1));//0-11表示 1-12月
int date = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("日期:"+date);
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
System.out.println("本年的第:"+dayOfYear);
//可以获取 指定时间 月份0-11 表示1-12月
calendar.set(2003, 1, 27,11,07,32);
Date date2 = calendar.getTime();
System.out.println(date2);
}
}