java基础类操作

BigDecimal

//初始化(初始化的值一点要是字符串类型,不然一样会丢失精度)
BigDecimal num1 = new BigDecimal("0");
BigDecimal num2 = new BigDecimal("1");

//加
BigDecimal add = num1.add(num2);

//减
BigDecimal subtract = num1.subtract(num2);

//乘
BigDecimal multiply = num1.multiply(num2);

//除
BigDecimal multiply = num1.divide(num2);
//除(进阶)
//divide(被除数,保留几位小数,使用保留模式)
//BigDecimal.ROUND_DOWN:直接省略多余的小数,比如1.28如果保留1位小数,得到的就是1.2
//BigDecimal.ROUND_UP:直接进位,比如1.21如果保留1位小数,得到的就是1.3
//BigDecimal.ROUND_HALF_UP:四舍五入,2.35保留1位,变成2.4
//BigDecimal.ROUND_HALF_DOWN:四舍五入,2.35保留1位,变成2.3
//BigDecimal.ROUND_HALF_EVEN:四舍五入,向“最接近的”数字舍入,如果与两个相邻数字的距离相等,则向相邻的偶数舍入
BigDecimal multiply1 = num1.divide(num2,2,BigDecimal.ROUND_HALF_UP);

//绝对值
BigDecimal abs = num1.abs();

//比较两个数据大小compareTo
// 0 表示相等、大于0是num1大、小于0是num2大
int compareTo = num1.compareTo(num2);

Java8新日期格式

LocalDate

日期处理类

//获取当前时间
LocalDate now = LocalDate.now();

//指定日期
LocalDate parse = LocalDate.parse("2021-11-08",DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate parse1 = LocalDate.of(2021,11,8);

//获取年
int year = parse.getYear();

//获取月
int month = parse.getMonth();

//获取日
int day = parse.getDayOfMonth();

//获取星期
DayOfWeek dayOfWeek = localDate.getDayOfWeek();

//加时间
//plusYears(年)、plusMonths(月)、plusDays(日)、plusWeeks(星期)
LocalDate plusDays = now.plusDays(5);

//减时间
//minusYears(年)、minusMonths(月)、minusDays(日)、minusWeeks(星期)
LocalDate minusDays = now.minusDays(5);

//两个时间差
//period.getYears()相差多少年、period.getMonths()月、period.getDays()日
Period period = Period.between(parse, parse1);

//两个时间比较
//parse大于parse1是true
boolena isBefore = parse.isAfter(parse1);
//parse小于parse1是true
boolena isBefore = parse.isBefore(parse1);
//我个人比较喜欢用万能的compareTo
// 0 表示相等、大于0是parse大、小于0是parse1大
int compareTo = parse.compareTo(parse1);

LocalTime

时间处理类(下面只写和LocalDate有区别的方法)

//指定日期
LocalTime parse = LocalTime.parse("11:30:00",DateTimeFormatter.ofPattern("HH:mm:ss"));
LocalTime parse1 = LocalTime.of(12,00,00);

//获取小时
int hour = parse.getHour(); 

//获取分钟
int minute = parse.getMinute();

//获取秒
int second = parse.getSecond();

//比较大小和加减时间参考 LocalDate 的方法

//两个时间差
//duration.toNanos()相差多少纳秒、duration.toMillis()毫秒、getSeconds()秒、
//duration.toMinutes()分钟、duration.toHours()小时、duration.toDays()天
Duration duration = Duration.between(parse, parse1);

LocalDateTime

//指定日期
LocalDateTime parse = LocalDateTime.parse("2021-11-08 11:30:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime parse1 = LocalDateTime.of(2021,11,8,12,00,00);
LocalDateTime parse2 = LocalDateTime.of(LocalDate.now(),LocalTime.now());

//两个时间差
//duration.toNanos()相差多少纳秒、duration.toMillis()毫秒、getSeconds()秒、
//duration.toMinutes()分钟、duration.toHours()小时、duration.toDays()天
Duration duration = Duration.between(parse, parse1);

//剩下的方法参考 LocalDate和LocalTime

LocalDateTime获取时间戳

//获取秒时间戳
Long second = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));

//获取毫秒时间戳
Long milliSecond = LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();

LocalDateTime与String互转

//时间转string
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dateTime = LocalDateTime.now(ZoneOffset.of("+8")).format(formatter);

//string转时间
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse("2021-11-08 11:30:00", formatter);

LocalDateTime与Date互转

//LocalDateTime转Date
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
    return Date.from(localDateTime.toInstant(ZoneOffset.of("+8")));
}

//Date转LocalDateTime
public static LocalDateTime dateToLocalDateTime(Date date) {
    return date.toInstant().atOffset(ZoneOffset.of("+8")).toLocalDateTime();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值