欢迎访问宙启技术站
智能推送

Java函数的时间日期操作

发布时间:2023-05-29 00:51:06

Java中的时间日期操作是日常编程工作中经常遇到的知识点,涉及到的类包括了java.util.Date、java.util.Calendar、java.time.LocalDateTime等。

1. java.util.Date

在Java 8及之前的版本中,Date类是处理时间日期的基础。Date类内部包含一个long类型的timestamp变量,表示自1970年1月1日00:00:00 UTC以来的毫秒数。

获取当前时间:

Date now = new Date();

获取时间之间的差值:

long diff = date1.getTime() - date2.getTime();
long diffSeconds = diff / 1000 % 60;
long diffMinutes = diff / (60 * 1000) % 60;
long diffHours = diff / (60 * 60 * 1000) % 24;
long diffDays = diff / (24 * 60 * 60 * 1000);

转换格式:

DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowStr = df.format(now);

2. java.util.Calendar

Java中的Calendar类提供了更全面的时间日期操作API。与Date类不同的是,Calendar类是抽象类,需使用getInstance()方法获取实例。Calendar类中提供了很多方法来获取时间日期的不同部分,例如get(Calendar.YEAR):获取当前年份;get(Calendar.MONTH):获取当前月份;get(Calendar.DAY_OF_MONTH):获取当前日期等。

获取当前时间:

Calendar now = Calendar.getInstance();

获取时间之间的差值:

int diffYears = now2.get(Calendar.YEAR) - now1.get(Calendar.YEAR);
int diffMonths = diffYears * 12 + now2.get(Calendar.MONTH) - now1.get(Calendar.MONTH);

转换格式:

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setCalendar(now);
String nowStr = format.format(now.getTime());

3. java.time.LocalDateTime

Java 8之后,新加入了java.time包,其中包含了许多处理日期时间的类。其中,LocalDateTime类提供了处理日期、时间的API。LocalDateTime类是不可变的,操作过后需要重新赋值给新的LocalDateTime变量。

获取当前时间:

LocalDateTime now = LocalDateTime.now();

获取时间之间的差值:

Duration diff = Duration.between(dateTime1, dateTime2);
long diffSeconds = diff.getSeconds();

转换格式:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(formatter);

以上就是Java中常用的时间日期操作方法,通过学习掌握这些知识点,可以更方便地处理和操作时间日期。