JDK7之前的date类
SimpleDateFormat
public final String format(Date date) 格式化(日期对象->字符串)
private static void Method() {
//1.利用空参构造创建SimpleDateFormat对象,默认格式
SimpleDateFormat sdf1 = new SimpleDateFormat();
Date d1 =new Date(1000000L);
String str1 = sdf1.format(d1);
System.out.println(str1);//70-1-1 上午8:16
//利用带参构造
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d2 =new Date(1000000L);
String str2 = sdf2.format(d2);
System.out.println(str2);
//课堂练习: yyyy年MM月dd日 时:分:秒 星期
SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy年MM月dd日 aaHH时mm分ss秒 EE");
Date d3 =new Date(1669091000000L);
String str3 = sdf3.format(d3);
System.out.println(str3);
}
public date parse(String source) 解析(字符串->日期对象)
//1.定义一个时间串表示时间
String str = "2022-10-31 22:03:25";
//2.利用空参构造方法创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse(str);
System.out.println("打印结果");
System.out.println(date.getTime());//1667225005000
public static void main(String[] args) {
/*
* publuc static Calendar getInstance() 获取当前时间的日历对象
*
* public final Date getTime() 获取日期对象
* public final setTime(Date date) 给日历设置日期对象
*
*
* */
//1.获取日历对象
// 细节:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
// 底层原理:会根据系统的不同时区获取不同的日历对象,默认表示当前时间
// 会把时间中的纪元 年 月 日 时 分 秒 星期 等等 放在一个数组中
Calendar c = Calendar.getInstance();
System.out.printf(String.valueOf(c));
//修改日历代表的时间
Date d = new Date(0L);
c.setTime(d);
System.out.println(c);
/*
* public int get(int field) 取日期中某个字段信息
* public void set(int field,int value ) 修改日历的某个字段信息
* public void add(int field,int amount) 为某个字段添加/减少制定的值
* */
c.set(Calendar.YEAR,2000);// set 修改
c.set(Calendar.MONTH,10); //表示12月
c.set(Calendar.DAY_OF_MONTH,10);
//调用方法在这个基础上增加一个 传递负数 表示往前减一个月
c.add(Calendar.MONTH,1);
//java 在Calendar类中,将索引对应的数字都定义为了常量
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1; // month 是从0开始的,后面+1对应真实月份
int date = c.get(Calendar.DATE);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year + ", " + month + ", " + date + ", " + getWeek(week)); //1970 1 1 5
}
// 传入对应的数字 1~7
// 返回对应的星期几
// 查表法!!!
public static String getWeek(int num) {
//有点麻烦
// switch (num) {
// case 1:
// return "星期日";
// case 2:
// return "星期一";
// case 3:
// return "星期二";
// case 4:
// return "星期三";
// case 5:
// return "星期四";
// case 6:
// return "星期五";
// case 7:
// return "星期六";
// default:
// return "输入错误";
// }
String arr[]={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return arr[num];
}
JDK 8 date类
细节:JDK8新增的时间对象是不可变的,如果我们修改了,增加或减少了时间,那么调用者是不会发生改变的,而是产生一个新的手机对象