跨越山海,终见曙光!
保持了爱,奔赴山海!
2023年12月23日22:29:05
– 2023年12月24日10:50:24
加油啊!
package com.liujintao.data;
import java.util.Date;
public class DataDemo01 {
public static void main(String[] LiuJinTao) {
// 1、Date 构造方法
// 无参构造
Date d1 = new Date(); // 将当前的日期时间,这封装为 Date 日期对象 (内部肯定重写了toString())
System.out.println(d1); // Sat Dec 23 22:47:33 CST 2023
// 带参构造 实参为long类型
Date d2 = new Date(0L); // 时间原点
System.out.println(d2); // Thu Jan 01 08:00:00 CST 1970
Date d3 = new Date(5000L);
System.out.println(d3); // Thu Jan 01 08:00:05 CST 1970
System.out.println("-------------------------------------------------");
// 2、常用的方法
Date d4 = new Date();
System.out.println(d4.getTime()); // 1703343443732
d4.setTime(10000L); // 将当前的日期设置为时间原点为基础的时间日期
System.out.println(d4); // Thu Jan 01 08:00:10 CST 1970
}
}
package com.liujintao.data;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo02 {
public static void main(String[] LiuJinTao) throws ParseException {
// SimpleDateFormat()类的构造方法的使用
System.out.println("-------------------空参构造---------------------------");
// 空参构造:创建一个日期格式化对象,(默认格式)
SimpleDateFormat simpleDateFormat = new SimpleDateFormat(); // 初始化实例对象
Date date = new Date(); // 获取当前时间日期
// 常用方法1: format
System.out.println(simpleDateFormat.format(date)); // 23-12-23 下午11:18
System.out.println("-------------------空参构造---------------------------");
System.out.println("-------------------带参构造----------------------------");
String today = "2023年12月23日";
SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy年MM月dd日");
// 常用方法2: parse
Date date1 = simpleDateFormat2.parse(today);
System.out.println(date1); // Sat Dec 23 00:00:00 CST 2023
System.out.println("-------------------带参构造----------------------------");
}
}
需求:根据用户输入的生日,得到用户来到这个世界上的天数。
public static void main (String[] LiuJinTao) throws ParseException {
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的生日:(格式:xxxx年xx月xx日)");
String birthday = sc.next();
// 1、创建 SimpleDateFormat 实例对象
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
// 2、将用户获取的生日字符串转为日期对象
Date birthdayDate = simpleDateFormat.parse(birthday);
// 3、获取今天的日期对象 (使用 Date 无参构造即可)
Date today = new Date();
// 4、将日期对象转为 时间毫秒数(时间戳), 然后将今天的时间戳 - 生日的时间戳
long time1 = today.getTime();
long time2 = birthdayDate.getTime();
long time = time1 - time2;
System.out.println("您来了这个世界上已经" + time / 1000 / 60 / 60 / 24);
}
Calender c = Caleender.getInstance() 方法创建实例对象
// Calendar 是个抽象类,不想重写方法,创建实例只能调用它身上的getInstance()方法。
Calendar c = Calendar.getInstance();
// 类中的常用方法 (当前时间: 2023年12月24日01:20:18)
System.out.println(c.get(Calendar.YEAR)); // 2023 通过 get 方法调用 该抽象类中的静态方法(获取年份)
System.out.println(c.get(Calendar.MONTH) + 1); // 获取月份 12
System.out.println(c.get(Calendar.DAY_OF_MONTH)); // 获取日 24
c.set(Calendar.YEAR, 2024);
System.out.println(c.get(Calendar.YEAR)); // 2024
c.add(Calendar.YEAR, 1);
System.out.println(c.get(Calendar.YEAR)); // 2025
c.add(Calendar.YEAR, -1);
System.out.println(c.get(Calendar.YEAR)); // 2024
public static void main(String[] LiuJinTao) {
// 需求: 判断 2035年 5 月 20 日是不是疯狂星期四
// 1. 通过Calendar 类 修改年份
Calendar c = Calendar.getInstance();
// c.set(Calendar.YEAR, 2035);
// System.out.println(c.get(Calendar.YEAR));
//
// // 2. 设置月份
// c.set(Calendar.MONTH, 5);
// System.out.println(c.get(Calendar.MONTH));
//
// // 3. 设置日
// c.set(Calendar.DAY_OF_MONTH, 20);
// System.out.println(c.get(Calendar.DAY_OF_MONTH));
c.set(2035, 4, 20); // 这里调用 set方法,记得月份从0开始
// 3.获取星期
String[] weeks = {"", "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
int weekIndex = c.get(Calendar.DAY_OF_WEEK);
System.out.println(weekIndex);
if (weeks[weekIndex].equals("星期四")) {
System.out.println("2035年5月20日是疯狂星期四!");
} else {
System.out.println("2035年5月20日不是疯狂星期四!");
}
}
public static void main(String[] LiuJinTao) throws ParseException {
/**
* 需求:用户输入一个日期,判断当期日期是该年的第几天
*/
// 1. 获取用户输入的日期
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个日期:(xxxx年xx月xx日)");
String inputDate = sc.next();
// 2. 将用户输入的日期,转为 Date 日期对象类型
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
Date date = simpleDateFormat.parse(inputDate);
// 3. 设置改日期对象为用户输入的日期
Calendar c = Calendar.getInstance();
c.setTime(date);
int dayInYear = c.get(Calendar.DAY_OF_YEAR);
System.out.println(inputDate + "是该年份的第:" + dayInYear + "天");
/*
输出示例:
请输入一个日期:(xxxx年xx月xx日)
2023年1月1日
2023年1月1日是该年份的第:1天
*/
}
public static void main (String[] args) {
// jdk8 版本后的日期对象的使用
// 1. 获取此刻的时间对象
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
System.out.println("------------------------------------------------");
System.out.println(now.getYear() + "年"); // 2023年
System.out.println(now.getMonthValue() + "月"); // 12月
System.out.println(now.getDayOfMonth() + "日"); // 24日
System.out.println(now.getHour() + "时"); // 8时
System.out.println(now.getMonthValue() + "分"); // 12分
System.out.println(now.getSecond() + "秒"); // 12秒
System.out.println(now.getNano() + "纳秒"); // 463000000纳秒
System.out.println("-----------------------------------------");
// 获取指定的时间对象
LocalDateTime of = LocalDateTime.of(2024, 12, 24, 5, 20);
System.out.println(of); // 2024-12-24T05:20
}
}
// LocalDateTime 、 LocalDate 、 LocalTime 都是不可变的,想要对其进行改变,就得使用下面的方法, 有返回值。
// 1、获取当前的时间
LocalDateTime now = LocalDateTime.now();
System.out.println(now.getYear()); // 2023
LocalDateTime of = LocalDateTime.of(2023, 12, 24, 5, 20);
System.out.println(of); // 2023-12-24T05:20
// 2、使用withYear设置年份 返回修改年份的日期时间对象
LocalDateTime localDateTime = now.withYear(2024);
System.out.println(localDateTime); // 2024-12-24T08:34:13.477
// 3、使用 plusYear 增加年份,返回新的日期时间对象
LocalDateTime localDateTime1 = now.plusYears(1);
System.out.println(localDateTime1); // 2024-12-24T08:35:56.474
// 4、使用 minusYear 减小年份, 返回新的日期时间对象
LocalDateTime localDateTime2 = now.minusYears(1);
System.out.println(localDateTime2); // 2022-12-24T08:38:43.372
// 5、equals 比较两个时间日期对象是否相等
boolean resultBoolean = now.equals(localDateTime2);
System.out.println(resultBoolean); // false
// 6、isBefore 比较日期对象是否在调用者之前
boolean before = now.isBefore(localDateTime2);
System.out.println(before); // false
// 7、isAfter 比较日期对象是否在调用者之后
boolean after = now.isAfter(localDateTime2);
System.out.println(after); // true
}
public static void main(String[] LiuJinTao) {
LocalDateTime now = LocalDateTime.now();
System.out.println("格式化之前的时间为:" + now); // 格式化之前的时间为:2023-12-24T10:05:58.785
// 获取格式化对象
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
// 格式化
String result = formatter.format(now);
System.out.println("格式化之后的时间为:" + result); // 格式化之后的时间为:2023年12月24日
// 解析
String time = "2023年12月24日";
LocalDate parse = LocalDate.parse(time, formatter); // 2023-12-24
System.out.println(parse);
}
LocalDate daDay = LocalDate.now();
LocalDateTime birthDate = LocalDateTime().of(2023, 12, 25, 0, 0, 0);
上面获取了当前时间对象和指定的时间对象,使用ChronoUnit对象里面的静态方法,调用between方法,得到两个时间对象之间的间隔!
+ 需求:键盘录入用户的生日,计算出用户的实际年龄
public static void main (String[] LiuJinTao) {
// 需求:键盘录入用户的生日,计算出用户的实际年龄
Scanner sc = new Scanner(System.in);
// 1. 将键盘输入的日期字符串,转为我们日期对象
System.out.println("请输入您的生日(格式:yyyy年M月d日):");
String birthday = sc.next();
LocalDate birthdayDate = LocalDate.parse(birthday, DateTimeFormatter.ofPattern("yyyy年M月d日"));
// 2. 获取今天的
LocalDate now = LocalDate.now();
// 3. 计算时间间隔(参数二 - 参数一)
long result = ChronoUnit.YEARS.between(birthdayDate, now);
System.out.println(result + "岁");
}
/*
输出示例:
输入:2004年10月19日
输出:19岁
此时此刻:(通宵备赛)2023年12月24日10:46:15 十九岁,加油!希望在元旦过后的新的2024年,一月,人工智能竞赛取得好名次!
*/
跨越山海,终见曙光!
保持了爱,奔赴山海!