日期类详解:
第一代日期类
1.Date:精确到毫秒,代表特定的瞬间(可以获取当前时间)
2.SimpleDateFormt:用来格式化和解析日期的具体工具类,它将给定日期时间格式化成文本模式(日期->文本),以及给定的文本模式解析成日期时间(文本->日期)
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo {
public static void main(String[] args) {
//创建日期对象
//给定日期格式转换成文本输出
Date d = new Date();
//SimpleDateFormat s = new SimpleDateFormat();
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String sdf = s.format(d);//调用Formt方法传递一个日期参数并用String类型变量接受
System.out.println(sdf);
System.out.println("------");
String t = "2022-12-03 18:18:18";
//文本格式转换成日期输出
SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//报错的话是没有抛出异常
try {
Date ss = s1.parse(t);
System.out.println(ss);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Calendar是个抽象类,通过多态形式的方法来创建对象进行日期操作
这个类有三个常用方法来进行日期的一个操作(方法在下面代码中展示并说明)
public class CalendarDemo {
public static void main(String[] args) {
//获取一个日历对象
Calendar c = Calendar.getInstance();
Calendar c1 = new GregorianCalendar();//多态形式创建对象
//public int get(int field)返回给定日历字段的值
//静态修饰,对象直接访问
int year = c.get(Calendar.YEAR);//获取年
int month = c.get(Calendar.MONTH) + 1;//加一操作是因为获取月是从0开始
int date = c.get(Calendar.DATE);//获取天
//输出
System.out.println(year + "年" + month + "月" + date + "日");
//public abstract void add(int field, int amount)根据日历的规则,将指定的时间量添加或减去给定的日历字段
c.add(Calendar.YEAR, 10);//根据日历规则,添加指定年份日历字段
c.add(Calendar.MONTH, -4);//减去指定月份字段
int year = c.get(Calendar.YEAR);//获取年
int month = c.get(Calendar.MONTH) + 1;//加一操作是因为获取月是从0开始
int date = c.get(Calendar.DATE);//获取天
System.out.println(year + "年" + month + "月" + date + "日");
//public final void set(int year,int month,int date)设置当前日历的年月日
c1.set(2022, 11, 14);//设置当前日历的年月日
int year = c1.get(Calendar.YEAR);//获取年
int month = c1.get(Calendar.MONTH) + 1;//加一操作是因为获取月是从0开始
int date = c1.get(Calendar.DATE);//获取天
System.out.println(year + "年" + month + "月" + date + "日");
}
}