1.日期工具类
(1)java.util.Date日期类
public static void main(String[] args) {
//1.实例化 Date()对象
Date a = new Date();
//2022-12-25 15:31:23 星期日
System.out.printf("%tF %<tT %<tA%n",a);
//2.通过date获取时间戳
long b =a.getTime();
System.out.println(b);//1671953621273
System.out.println(System.currentTimeMillis());//1671953621273
//3.date 实力的常用办法
int date = a.getDate();
System.out.println(date);
a.getYear();
a.getMonth();
a.getDate();
a.getDate();
a.getHours();
a.getMinutes();
a.getSeconds();
a.setTime(0);
System.out.printf("%tF %<tT %<tA %n",a);
//java.util.Date 类的格式化类 SimpleDateFormat
SimpleDateFormat c = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
System.out.printf(c.format(new Date()));//2022年12月25日 15时44分30秒 周日
}
(2)java.util.Calendar 日历类
public static void main(String[] args) {
//实例化
Calendar a = Calendar.getInstance();
//1. get 获取 NI
System.out.println(a.get(Calendar.YEAR));
System.out.println(a.get(Calendar.MONTH)+1);
System.out.println(a.get(Calendar.DATE));
//12小时制
System.out.println(a.get(Calendar.HOUR));
//24小时制
System.out.println(a.get(Calendar.HOUR_OF_DAY));
System.out.println(a.get(Calendar.MINUTE));
System.out.println(a.get(Calendar.SECOND));
System.out.println(a.get(Calendar.MILLISECOND));
//2. set 设置
a.set(2000,4,22);
System.out.printf("%tF %<tT%n",a);//2000-05-22 16:01:51
//3. add 增加
Calendar b = Calendar.getInstance();
b.add(Calendar.DATE,-3);//当前日期减少三日
System.out.printf("%tF %<tT%n",b);//2022-12-22 16:11:20
Calendar c = Calendar.getInstance();
c.add(Calendar.DATE,5);//当前日期增加五日
System.out.printf("%tF %<tT%n",c);//2022-12-30 16:11:20
}
(3) java.time.LocalDate
jdk1.8 新的日期API java.time.LocalDate类 java.util.Date Calendar 此类只有年月日
public static void main(String[] args) {
//实例化
LocalDate a = LocalDate.now();
System.out.println(a);
//of 设置
LocalDate b = LocalDate.of(2015,10,1);
System.out.println(b);
// plus加 今日三天后日期
System.out.println(a.plusDays(3));
//min减 今日三天前日期
System.out.println(a.minusDays(3));
//获取当日中文月份
System.out.println(a.getMonth().getDisplayName(TextStyle.FULL, Locale.CHINESE));
//获取当日中文星期几
System.out.println(a.getDayOfWeek().getDisplayName(TextStyle.FULL,Locale.CHINESE));
//计算两个日期的天数
long day = (ChronoUnit.DAYS.between(b,a));
System.out.printf("从%s 到 %s 有%d天%n",b,a,day);
}
(4) jdk1.8 java.time.LocalTime
LocalTime 本地化时间 只有时分秒…没有日期
public static void main(String[] args) {
//实例化
LocalTime a = LocalTime.now();
System.out.println(a);
// of 设置
LocalTime b = LocalTime.of(14,30,20);
System.out.println(b);
//格式化
LocalTime c = LocalTime.parse("15:25:35", DateTimeFormatter.ofPattern("HH:mm:ss"));
System.out.println(c);
}
(5) dk1.8 java.time.LocalDateTime
此类包含了年月日时分秒 相关信息,相当于LocalDateTime = LocalDate + LocalTime 了 相当于以前的java.util.Date,也相当于java.util.Calendar类
public static void main(String[] args) {
//实例化
LocalDateTime a = LocalDateTime.now();
System.out.println(a);//2022-12-25T17:19:45.313140500
//格式化输出
System.out.println(a.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
System.out.println(a.format(DateTimeFormatter.ofPattern("MM月dd日")));
System.out.println(a.format(DateTimeFormatter.ofPattern("E")));
System.out.println(a.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.CHINA));
}
2. 随机
(1) Math.random()方法
java.lang.Math package cn.abc; java.lang 包下的类,在编译程序时不 用import导入,可以直接使用
public static void main(String[] args) {
//java.lang.Math类年 random()方法是返回大于0 小于1的随机小数
System.out.println(Math.random());
//根据Math.random 写出1-5的整数
for(int i = 1;i<10;i++)
{
long t = Math.round(Math.random() * 4) + 1; //1 - 5
System.out.println(t);
}
}
(2) java.util.Random类
public static void main(String[] args) {
//实例化
Random rand = new Random();
//用法 随机生成小数
System.out.println(rand.nextBoolean());
System.out.println(rand.nextDouble());
System.out.println(rand.nextDouble(5));
System.out.println(rand.nextDouble(5,10));
// 随机生成 0-5的整数(不包括5)
System.out.println(rand.nextInt(5));
}
(3) UUID字符串
public static void main(String[] args) {
//uuid 唯一随机的字符串(36位)
System.out.println(UUID.randomUUID());//307267b5-2dfa-4408-98f4-945e0a08a0b0
}