淘先锋技术网

首页 1 2 3 4 5 6 7

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等,可以根据自己的需要选择使用。