Java中关于日期和时间的处理主要通过java.util.Date和java.util.Calendar类来实现。其中,Date类是Java中内置的表示时间点的类,而Calendar类是基于Date类的一种抽象,提供了对日期和时间的各种操纵及计算。
//获取当前时间 Date now = new Date(); System.out.println(now); //获取指定时间 Date date = new Date(121, 2, 5, 10, 38, 15); //参数分别为年、月、日、小时、分钟、秒 System.out.println(date); //使用SimpleDateFormat格式化时间 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(sdf.format(date)); //输出格式化后的时间 //使用Calendar类操作时间 Calendar cal = Calendar.getInstance(); cal.setTime(date); //将date作为Calendar对象的时间 int year = cal.get(Calendar.YEAR); //获取年份 int month = cal.get(Calendar.MONTH) + 1; //获取月份(月份从0开始,需要加1) int day = cal.get(Calendar.DAY_OF_MONTH); //获取日期 int hour = cal.get(Calendar.HOUR_OF_DAY); //获取小时 int minute = cal.get(Calendar.MINUTE); //获取分钟 int second = cal.get(Calendar.SECOND); //获取秒钟 cal.add(Calendar.DATE, 7); //在当前时间基础上加上7天 System.out.println(sdf.format(cal.getTime())); //输出加后后的时间
除了基本的日期和时间操作外,Java还提供了专门针对时间差计算的类Duration和Period,包括计算两个时间点之间的时间差、对时间进行加减等。
//计算两个时间点之间的时间差 Instant start = Instant.parse("2021-03-05T10:38:15Z"); Instant end = Instant.parse("2021-03-06T14:25:30Z"); Duration duration = Duration.between(start, end); System.out.println(duration.toHours()); //对时间进行加减 LocalDateTime ldt = LocalDateTime.of(2021, 3, 5, 10, 38, 15); ldt = ldt.plusDays(7).plusHours(2); System.out.println(ldt.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
Java中日期和时间的处理非常灵活和方便,不仅提供了基本的公共API,还有许多第三方库可以使用,例如Joda-Time、Time4J等,可以根据自己的需要选择使用。