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中常用的时间日期操作方法,通过学习掌握这些知识点,可以更方便地处理和操作时间日期。
