1.Date
-
构造器:
- 无参构造器: Date d = new Date;
- 有参构造器: Date d = new Date(time); // time 为 long的毫秒值 , 转化为date日期对象;
-
常用api:
-
api 描述 public long getTime() / System.CurrentTimeMillis() 获取从1970年1月1日 00:00:00走到此刻的毫秒数(long) public void setTime(long time) 设置日期对象的时间为当前时间毫秒值 对应的时间
-
public class DateDemo {
public static void main(String[] args) {
//目标:学会Date的无参与有参构造,基本方法
//1.无参
Date date = new Date(); //当前时间
System.out.println(date); //Tue Jan 16 10:55:57 CST 2024
//2.获取时间毫秒getTime()
long time = date.getTime();
System.out.println(time);
// long time1 = System.currentTimeMillis(); 更直接
// System.out.println(time1);
//3.有参构造
long time1 = date.getTime();
time1 += (60L * 60 + 121)*1000;
Date date1 = new Date(time1);
System.out.println(date1);
//4.设置当前时间毫秒 setTime()
date.setTime(time1);
System.out.println(date);
}
}
2.SimpleDateFormat
格式化的日期时间形式 关键: pattern模式
-
构造器:
-
构造器 说明 public SimpleDateFormat() 构造一个时间形式,默认格式 public SimpleDateFormat(String pattern) 构造一个时间形式,使用指定的pattern形式
-
-
常用的模式pattern:
-
yyyy-MM-dd HH:mm:ss — 2024-1-15 12:12:09
-
yyyy年MM月dd日 HH:mm:ss — 2024年1月15日 12:12:10
-
yyyy年MM月dd日 HH:mm:ss EEE a — 2024年1月15日 10:52:59 星期一 上午
-
-
格式化方法:(Date / time 转化为 格式化时间字符串)
- public final String format(Date date) 将日期格式化为时间字符串;
- public final String format(Object time) 将时间毫秒值转化为时间字符串;
-
解析字符串时间 为 日期对象
- public Date parse(String source) 格式化的时间字符串 解析 为Date类型日期
public class SimpleDateFormatDemo {
public static void main(String[] args) throws ParseException {
//1.日期对象
Date date = new Date();
System.out.println(date);
System.out.println("-------------");
//2.格式化这个日期对象
//无参构造。 输出格式 23-5-8 下午8:52
// SimpleDateFormat sdf = new SimpleDateFormat();
//有参构造((固定!!!pattern))
//3.格式化日期对象成喜欢的字符串形式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
//格式化日期.format(Date) , 返回String
String rs = sdf.format(date);
System.out.println(rs); //2023年05月08日 20:54:55 星期一 下午
System.out.println("-------------");
//4.格式化时间毫秒值 .format(Time) , 返回String
//需求:得到121秒以后的格式化时间
long time1 = System.currentTimeMillis()+121*1000;
String rs1 = sdf.format(time1);
Date date1 = sdf.parse(rs1); //parse解析的字符串不一定满足 sdf的模式,要抛出 parseException
System.out.println(rs1);
System.out.println(date1);
}
}
3.Calendar
单例模式 获取对象 getInstance()
- Calendar代表系统此刻日期对应的日历对象
- Calendar是一个抽象类,不能直接创建对象
- 创建日历对象的方法 : public static Calendar getInstance()
常用方法:
public class CalendarDemo {
public static void main(String[] args) {
//1.获取对象 .getInstance()
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//2.取得 具体的信息 .get(int field)
int year = calendar.get(Calendar.YEAR);
System.out.println(year);
int Month = calendar.get(Calendar.MONTH)+1; // 仅月份特殊 需要+1
System.out.println(Month);
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
//3.public void set(int field , int value) //修改某一字段信息 (一般不直接设置)
// calendar.set(Calendar.HOUR , 12);
// System.out.println(calendar);
//4.public void add(int field int amount) 某一字段 增加/减少指定的值
//64天后的时间
calendar.add(Calendar.DATE , 64);
//calendar.add(Calendar.HOUR , -10);
//System.out.println(calendar);
//5.public final Date getTime() 拿到此刻日期对象
Date date = calendar.getTime();
System.out.println(date);
//6.public long getTimeInMillis() 拿到此刻时间毫秒值
long time = calendar.getTimeInMillis();
System.out.println(time);
}
}
4.JDK8开始
LocalDate : 日期(2020-1-1);LocalTime:具体时间(11:12:03) ; LocalDateTime是前者的结合,日期时间
public class LocalDateDemo1 {
public static void main(String[] args) {
//1.获取对象
LocalDate time = LocalDate.now();
System.out.println(time);
//2.获取具体月份...
System.out.println(time.getMonthValue());
//生日问题
LocalDate nowTime = LocalDate.now();
LocalDate birDate = LocalDate.of(2001,5,9);
MonthDay birMd = MonthDay.of(birDate.getMonthValue(),birDate.getDayOfMonth());
MonthDay nowMd = MonthDay.from(nowTime);
System.out.println("今天是你的生日吗?"+ Objects.equals(birMd,nowMd));
}
}
public class LocalTimeDemo2 {
public static void main(String[] args) {
//1.获取对象
LocalTime time = LocalTime.now();
System.out.println(time);
//2.获取具体时间
System.out.println(time.getHour());
System.out.println(time.getMinute());
System.out.println(time.getSecond());
System.out.println(time.getNano()); //纳秒
}
}
public class LocalDateTimeDemo3 {
public static void main(String[] args) {
//1.获取对象
LocalDateTime time = LocalDateTime.now();
System.out.println(time);
//2.获取具体信息
System.out.println(time.getMonthValue());
System.out.println(time.getHour());
//3.转化
LocalDate date = time.toLocalDate();
System.out.println(date);
LocalTime time1 = time.toLocalTime();
System.out.println(time1);
}
}
out.println(time.getHour());
//3.转化
LocalDate date = time.toLocalDate();
System.out.println(date);
LocalTime time1 = time.toLocalTime();
System.out.println(time1);
}
}