Date
api:java.util.Date[C] - 使用这个类之前,必须要导包import
这是java中提供的关于日期的处理,内置的对象类型.它本身是一个过时的类
里面提供了很多已经过时的方法.
目标:掌握这个类中提供的方法
api手册
构造方法
作用:创建这个类的对象的方式
观察提供的方法是静态的方法还是非静态的方法. - api手册方法摘要
Date类中提供的方法几乎都是非静态的方法 - 考虑如何构建这个对象?
如何构建对象 - api手册的构造方法[面向对象]
简单理解构造方法 - “方法”,构造方法通过new关键字调用
Date();//Date d = new Date();//获取当前系统时间
Date(int year, int month, int date);//已经过时的
Date d2 = new Date(2021-1900,6,21); year - 1900 => 实际的year month的范围是[0,11]
Date(long date);//根据一个毫秒数来构建一个指定的日期类型 - 重新设置一个新的Date
Java中日期类型Date对象是不支持运算的.
计算三天之后的此时此刻 long afterThreeTime = new Date().getTime()+3L*24*60*60*1000; Date afterThreeDate = new Date(afterThreeTime); System.out.println(afterThreeDate);
常用方法
非静态方法 - 日期对象进行调用.
long getTime();//返回当前日期的毫秒数的表现形式 - 获取当前系统时间的毫秒数.距离1970年1月1日
1970年是计算机的元年
get/set方法 - 过时的
- void setYear(int year);// year-1900
- void setMonth(int month);//month的范围[0,11]
- void setDate(int date);//设置今天是几号
- void setHours(int hours);//设置小时
- void setMinutes(int minutes);//设置分钟
- void setSeconds(int seconds);//设置秒
package tech.aistar.day05; import java.util.Date; /** * 本类用来演示: java.util.Date 日期处理类 * @date: 2021/7/21 8:43 上午 */ public class DateDemo { public static void main(String[] args) { //1. 创建一个日期对象 //alter + enter 快速导包 Date d = new Date();//空参构造方法 //为什么此处输出的不是内存地址??? - OO - toString(); //Wed Jul 21 08:45:03 CST 2021 System.out.println(d); //2. 重载的构造方法 - 过时的构造 Date d2 = new Date(2021-1900,6,21); System.out.println(d2); //3. 利用毫秒数来构建一个Date对象 Date d3 = new Date(1626829161216L); System.out.println(d3); System.out.println("====常用方法==="); //4.. 获取当前日期的毫秒数 //1秒 = 1000毫秒 long nowTime = d.getTime(); System.out.println(nowTime);//1626828910303 //练习-计算三天之后的此时此刻 long afterThreeTime = new Date().getTime()+3L*24*60*60*1000; Date afterThreeDate = new Date(afterThreeTime); System.out.println(afterThreeDate); System.out.println("=====set设置/get获取======"); Date now = new Date(); now.setYear(2021-1900);//设置年份 now.setMonth(6);//设置月份[0,11] now.setDate(25);
System.out.println("now:"+now); int year = now.getYear()+1900;//获取年份 System.out.println("year:"+year); System.out.println("month:"+now.getMonth());//获取月份 System.out.println("date:"+now.getDate());//获取几号 System.out.println("day:"+now.getDay()); // 周几,周1-周6[1-6],周日是0 System.out.println("hours:"+now.getHours()); //void setTime(long date); //构造 Date(long time); Date dd = new Date(); dd.setTime(1726830007794L); System.out.println(dd); }
}
Calendar
日历类 - 超纲的内容
api - java.util.Calendar
public abstract class Calendar abstract[修饰符]修饰的类是一个抽象类 - 不能够被new 构建Calendar对象 - Calendar cal = new Calendar();//error
api手册
常用方法
static Calendar getInstance();
//获取当前系统的日历对象 Calendar cal = Calendar.getInstance();//底层使用到了简单工厂的设计模式[不需要了解暂时]
关于设置日历字段
void set(int year, int month, int date) 设置日历字段中的值 YEAR , MONTH和 DAY_OF_MONTH 。 void set(int year, int month, int date, int hourOfDay, int minute) 设置日历字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY和 MINUTE 。 void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
Date -> Calendar void setTime(Date date);
单独针对单个字段一一进行赋值
void set(int field,int value); 只要看到field //公开的静态的常量属性 public static final int YEAR = 1;
关于获取日历字段
Date getTime();//获取日历信息中关于日期部分的信息 - Calendar转成Date类型 int get(int field);//关于获取日历指定字段的值
总结
毫秒数 -> Date
a. java.util.Date中提供了构造方法Date(long time); b. 上述类void setTime(long time);
Date -> 毫秒数
该类中long getTime();
Calendar -> Date
Calendar类中提供了Date getTime();
Date -> Calendar
Calendar类中void setTime(Date date);
package tech.aistar.day05;
import java.util.Calendar;
import java.util.Date;
/**
* 本类用来演示: 日历类java.util.Calendar
* @date: 2021/7/21 9:30 上午
*/
public class CalendarDemo {
public static void main(String[] args) {
//超纲 - abstract是修饰符 - 修饰类 - 抽象的类
//特点 - 不能够被new[不能够被实例化,具体化]
//Calendar cal = new Calendar();//error
Calendar cal = Calendar.getInstance();
//System.out.println(cal);
//统一设置值
cal.set(2020,6,21);
//Calendar -> Date
Date now = cal.getTime();
System.out.println(now);
//Date -> Calendar
Date d = new Date(17818237347L);
cal.setTime(d);
System.out.println(cal.get(1));
System.out.println("====单个字段一一赋值====");
//void set(int field,int value);
Calendar cd = Calendar.getInstance();
//通过字面量直接进行设置 - 可读性比较差
//获取Calendar中提供的一些公开的静态的常量属性
//System.out.println();
//常量的好处 - 提供程序的可读性
cd.set(Calendar.YEAR,2021);
cd.set(Calendar.MONTH,6);
cd.set(Calendar.DAY_OF_MONTH,24);
System.out.println(cd.getTime());//Calendar->Date
int year = cd.get(Calendar.YEAR);
int month = cd.get(Calendar.MONTH)+1;
int day = cd.get(Calendar.DAY_OF_MONTH);
System.out.println("year:"+year);
System.out.println("month:"+month);
System.out.println("day:"+day);
//获取周几
int week = cd.get(Calendar.DAY_OF_WEEK);
System.out.println("week:"+week);//周日~周六,[1~7]
}
}
获取键盘键盘输入
java.util.Scanner键盘类
如何构建这个Scanner对象
Scanner sc = new Scanner(System.in);
方法
3-1. int nextInt();//只能获取整数
3-2. double nextDouble();//获取小数
3-3. String nextLine();//获取字符串
注意点:nextLine不要和nextInt或者nextDouble混用.