2022-07-28 一些常用API
一、常用API
Application Programing Interface
:应用程序接口,jdk提供的一些类,我们可以直接调方法来解决问题;
类的方法在宏观上都可以称为接口
1.1 与时间有关API
1.1.1 时间戳
格林尼治时间1970年1月1号0时0分0秒 到 今天此时此刻的毫秒数
1s = 1000ms
在全世界都是固定的,
// 时间戳的获取
long l = System.currentTimeMillis(); // 类名.方法
// currentTimeMillis()有返回值,是个静态方法
获取来干嘛??
通过时间戳转换成我们当前所在地的具体时间和日期
1.1.2 Date
// 获取系统当前时间,但获取到的格式不友好
Date date = new Date();
Date date2 = new Date(1728478923753458L);
// 获取系统当前时间---有参构造器
……看文档!!
- 从jdk1.1开始,在处理时间和日期时,系统推荐使用Calendar类。
1.1.3 Calendar
Calendar : 是一个抽象类,可以new ,但不能创建对象
// 获取一个日历对象,其实是它子类的对象
Calendar calendar = Calendar.getInstance();
1.1.4 日期格式化(重要)
1、SimpleDateFormat 类
Date date = new Date();
/**
* yyyy:年 yy:年的后两位
* MM:月 dd:日
* HH:24小时制 hh:12小时
* mm:分钟
* ss:秒
* SSS:毫秒
*/
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
String s = sdf.format(date); // 22-07-28
1.1 format()
----格式化Date
型,把Date
型时间转String
型
用于:展示数据到客户端
1.2 parse()
----把String
型时间转为Date
型
什么时候用:从客户端传过来的时间,一般都是String型,存入数据库
1.3 设计一个工具类
- 可以对
Date
类型的日期进行格式化,转成String
format()
参数是Date
,返回值是String
- 可以对
String
类型的日期进行格式化,转成Date
parse()
参数是String
,返回值是Date
// 工具类方法静态化
public class DateUtils {
private static final SimpleDateFormat SDF = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
public static final String dateToString(Date date){
return SDF.format(date);
}
public static final Date stringToDate(String dateStr) throws ParseException {
return SDF.parse(dateStr);
}
}
二、JDK8的日期时间类
jdk8之前,
Date
和Calendar
获取到的月份都是0到11月,而不是0到12月,不符合日常。
阿里巴巴规约的明确要求:
-
如果是
jdk8
的应用,可以使用Instant
代替Date
-
LocalDateTime
代替Calender
-
DateTimeFormatter
代替SimpleDateFormat
2.1 新的实现类:
2.1 Instant
某一瞬间
Instant time = Instant.now(); // 美国时间
// 获取当前时间的同时,还能拿到一个对象
System.out.println(time.atZone(zoneId.systemDefault()));
// 现在把时区也设置了,就好啦
2.2 LocalDate
- 获取日期
2.3 LocalDateTime
- 获取日期和时间
2.4 DateTimeFormatter
- 日期格式转换
2.4 各日期类型的转换
2.4.1 Instant型与Date型的转换
2.4.2 Instant型与LocalDateTime型的转换
2.4.3 LocalDateTime和Date的转换
三、其他类
3.1 Math
-
全是静态,调用时直接类名.方法()
-
随机数
random
返回值类型double
-
向上、下取整
ceil()
、floor()
返回值类型double
-
四舍五入
round()
返回值类型:long
-
另外:
Math.PI
3.2 BigDecimal
统计类
与钱相关
四、数组的工具类
五、系统类
六、Objects(重要)
objects.isNull("")
:判断是不是空