Java常用工具类
日期
有关日期的类主要有
Date:java.util包下的类,早期处理日期的类
LocalDateTime:有关时间、日期的类
java8开始,在java.time包下实现了专门处理日期、时间的类,其他还有LocalDate、LocalTime,用来获取当前时间
Date
构造方法
Date类有多个构造方法,大多已经过时了,主要关注Date()和Date(long l)两个
// 无参构造:使用当前时间戳初始化
public Date() {
this(System.currentTimeMillis());
}
// 参数传入一个时间戳,以此初始化
public Date(long date) {
fastTime = date;
}
Date类是一个几乎过时的类,因为大多数方法已经过时了,获取年月日时分秒的方法全部过时
- long getTime():获取时间戳(一般都是毫秒级)
时间戳:1970/1/1:00.00.00至今的毫秒数
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
Date date = new Date();
// Date重写了toString()方法,但不需要直接调用
// 以下两行输出一致
System.out.println(date);
System.out.println(date.toString());
// getTime():返回时间戳
System.out.println(date.getTime());
System.out.println(date.getTime());
// 构造方法,传入时间戳 long类型初始化,可以是任意一个时间点
Date date2 = new Date(1845350000000L); // 2028年6月23日星期五,时分秒13.13.20
System.out.println(date2);
}
}
为什么Date类过时了?
一、名字歧义,包括日期时间,但字面只有日期的含义
二、不是最终类,多线程环境下,会造成线程不安全
LocalDateTime
需要关注的方法
static LocalDateTime now():用时钟类初始化的本地时间日期对象
public static LocalDateTime now() {
return now(Clock.systemDefaultZone());
}
java推荐使用这个类创建日期对象,但不能获取时间戳
import java.time.Instant;
import java.time.LocalDateTime;
import java.util.Date;
public class TestDate {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
System.out.println(now);
System.out.println();
System.out.println(now.getYear()); // 年
System.out.println(now.getMonthValue()); // 月
System.out.println(now.getDayOfMonth()); // 日
System.out.println(now.getHour()); // 时
System.out.println(now.getMinute()); // 分
System.out.println(now.getSecond()); // 秒
System.out.println(now.getDayOfYear()); // 今年的第几天
System.out.println(now.getDayOfWeek().getValue()); // 周几
}
}
获取时间戳的三种方法
System.out.println(Instant.now().toEpochMilli());
System.out.println(new Date().getTime());
System.out.println(System.currentTimeMillis());
算术 Math类
有关数学公式、算术等常用方法
public class TestMath {
public static void main(String[] args) {
// 加减乘法
System.out.println(Math.addExact(2, 3));
System.out.println(Math.subtractExact(2, 3));
System.out.println(Math.multiplyExact(2,3));
System.out.println(Math.max(2,3));
System.out.println(Math.min(2,3));
System.out.println(Math.ceil(3.4)); // 4 向上取整
System.out.println(Math.floor(3.4)); // 3 向下取整
System.out.println(Math.round(3.45)); // 3 四舍五入
System.out.println(Math.round(3.55)); // 4 四舍五入
System.out.println(Math.random()); // 返回[0,1)的伪随机小数
}
}
定义一个方法,返回指定两数之间的随机数
// 定义一个方法,返回指定两数之间的随机数
public static int getRandomInt(int min, int max) {
return (int)(Math.random() * (max - min + 1) + min);
}
// 使用Random类的nextInt()方法, 返回指定两数之间的随机数
new Random().nextInt(max - min + 1) + min
// 使用Random类的nextInt()方法 生成0 ~ n-1的随机整数
new Random().nextInt(n)
标签:Java,--,System,Date,println,now,常用工具,Math,out
From: https://blog.csdn.net/2402_89573492/article/details/144788123