自定义格式(类似于SimpleDateFormat):
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss"); String str1 = format.format(localDateTime); //2021-04-27 08:21:52 System.out.println(str1); TemporalAccessor temporalAccessor1 = format.parse(str1); System.out.println(temporalAccessor1); //{MicroOfSecond=0, HourOfAmPm=8, MilliOfSecond=0, NanoOfSecond=0, MinuteOfHour=21, SecondOfMinute=52},ISO resolved to 2021-04-27解析同上面即可,注意解析时需要一个TemporalAccessor转承。
其他的一些API(不再详细赘述):
以上三种Date之间的转换:
3. 比较器这里牵扯到对象的比较
实现Comparable接口(自然排序),重写compareTo()方法,重写的规则是:当前对象this大于形参对象obj,返回正整数;this小于,返回负整数;this等于,返回0;
使用Comparator接口(定制排序)
适用于该类型没有实现Comparable接口,且不方便修改代码;或者实现了Comparable接口但是排序规则不适合当前操作
对比:
Comparable接口的方式可以保证类的对象在任何位置都可以实现比较
Comparator接口属于临时性的比较
关于应用在之前的博客中已有实现,可参考
(Set, Map, Collections工具类)JAVA集合框架二
4. System, Math, BigInteger 和 BigDecimal 4.1 Systemjava.lang.System
成员变量:in, out ,err三个,分别代表标准输入流(键盘输入),标准输出流(显示器),标准错误输出流(显示器)
static long currentTimeMillis() 返回当前时间(以毫秒为单位)。表达格式同时间戳。
static void exit(int status) 终止当前运行的Java虚拟机。status为0时代表正常退出,非零则为异常退出。
static void gc() 运行垃圾回收器。请求系统进行垃圾回收。
static String getProperty(String key) 获取指定键指示的系统属性。对于常用的key:
4.2 Math以上为Math常用方法总结。可见开发文档。
4.3 BigInteger与BigDecimal BigInteger构造方法:
BigInteger提供所有java的基本整数操作符的对应物,并提供java.lang.Math的所有相关方法,另外,还提供一下运算:模算术,GCD计算,质数测试,素数生成,位操作等。
BigDecimalFloat和Double的精度不能满足用户需求时,可以使用BigDecimal
构造方法:
BigDecimal(double val) 将 double转换为 BigDecimal ,这是 double的二进制浮点值的精确十进制表示。
BigDecimal(String val) 将BigDecimal的字符串表示 BigDecimal转换为 BigDecimal 。
还有很多,只举例了两种常用的。
加减乘除操作类似于BigInteger,说明一下devide:
scale即保留多少位小数,上下文设置用的不多不再赘述。
几种舍入模式:
其中,有些翻译不够准确,解释一下:
ROUND_UP,即向上舍。0.1203456789,当精度为3的时候,按照ROUND_UP模式,结果是0.121
ROUND_DOWN即向下舍。
而ROUND_HALF_EVEN,像邻近的偶数方向舍。
这几个可以参考对应英文进行理解。
4.4 个人总结的其他类其实经常用到的还有Ramdom,生活中经常用到随机数。
例如取一个随机整数。
Random r1 = new Random(); int i = r1.nextInt(100); //取0到100的随机整数,无 100其他方法都是与之类似的,具体可参考开发文档。