【代码复用】Java处理日期时间

Java8之前的时间、日期类API使用Date、Calendar。

Java8以前时间类API

类型转换

Date类型转换为String:SimpleDateFormat的format()方法。
String类型转换为Date:SimpleDateFormat的parse()方法,需抛出异常。

    public static void main(String[] args) throws ParseException {
        // Java8中LocalDateTime替换了Date
        Date date = new Date();
        // Java8中DateTimeFormatter替换了SimpleDateFormat
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm");
        // Date转换为字符串
        String dateStr = sdf.format(date);
        System.out.println(dateStr);// 2021-12-14 09:59:28

        // 字符串转换为Date
        Date resDate = sdf.parse(dateStr);
        System.out.println(resDate);// Tue Dec 14 09:28:59 CST 2021
    }

Java8时间类API

Instant:它代表的是时间戳。
LocalDate:不包含具体时间的日期,比如2014-01-14。它可以用来存储生日,周年纪念日,入职日期等。
LocalTime:它代表的是不含日期的时间。比如13:12:39
LocalDateTime:它包含了日期及时间,不过还是没有偏移信息或者说时区。
实际使用中,计算日期就用LocalDate,计算时分秒就用LocalTime,计算日期加时分秒用LocalDateTime。

Instant

Instant:该类代表一个具体的时刻,可以精确到纳秒。该类主要提供了以下几个方法:
1)now():获取当前时刻。
2)now(Clock clock):获取clock对应的时刻。
3)minusXxx():在当前时刻基础上减去一段时间。
4)plusXxx():在当前时刻基础上加上一段时间。

LocalDate

1)now():获取当前日期。
2)now(Clock clock):获取clock对应的日期。
3)minusXxx():在当前年份基础上减去几年、几月、几周或几日等。
4)plusXxx():在当前年份基础上加上几年、几月、几周或几日等。

LocalTime

获取当前时间
格式转换:

        DateTimeFormatter fmTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //当前时间
        LocalDateTime now = LocalDateTime.now();
        System.out.println("当前时间:"+now.format(fmTime));

LocalDateTime

时间格式化

Date格式化为字符串

字符串形式

获取当前时间,返回字符串形式:

    public void findCurrentTime(){
        DateTimeFormatter fmTime = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime now = LocalDateTime.now();
        String currentTime = now.format(fmTime);
        System.out.println(currentTime);
    }

结果:2021-04-16 17:09:37

计算时间

获取当前年

    public String findCurrentYear(){
        Calendar calendar = Calendar.getInstance();
        int year = calendar.get(Calendar.YEAR);
        return String.valueOf(year);
    }

结果:2021

获取当前月

方法返回两位数字表示的月份,如01、11.

    public String findCurrentMonth(){
        Calendar calendar = Calendar.getInstance();
        int month = calendar.get(Calendar.MONTH )+1;
        String monthStr = month<10?"0"+month:String.valueOf(month);
        return monthStr;
    }

比较时间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值