JAVA中的日期时间类用法总结
一、介绍
JAVA中的日期时间类可以用来处理日期、时间等与时间有关的业务。JAVA中内置了多个日期时间类,比较常用的有:
- Date类:这个类已经被替代了,不推荐使用。
- Calendar类:是一个抽象类,提供了一组可以操纵日期、时间与之对应的字段的方法,同时还提供了其他的一些常用模块方法。
- SimpleDateFormat类:可以将时间对象转化为字符串,或者根据字符串生成时间对象。
- LocalDate/LocalTime/LocalDateTime类:Java 8之后引入的新日期时间API,解决了旧API的很多问题,是线程安全的。
二、Calendar类
Calendar类是一个抽象类,提供了一组可以操纵日期、时间与之对应的字段的方法,同时还提供了其他的一些常用模块方法。
以下是一些常用的Calendar类操作:
- 获取Calendar实例对象
Calendar calendar = Calendar.getInstance();
- 获取年/月/日等信息
int year = calendar.get(Calendar.YEAR); // 获取年份
int month = calendar.get(Calendar.MONTH) + 1; // 获取月份,因为Calendar类的月份是从0开始计算的,所以需要加1
int day = calendar.get(Calendar.DAY_OF_MONTH); // 获取日期
int hour = calendar.get(Calendar.HOUR_OF_DAY); // 获取小时,24小时制
int minute = calendar.get(Calendar.MINUTE); // 获取分钟
int second = calendar.get(Calendar.SECOND); // 获取秒
- 设置日期时间信息
calendar.set(Calendar.YEAR, 2021); // 设置年份为2021年
calendar.set(Calendar.MONTH, Calendar.MARCH); // 设置月份为3月
calendar.set(Calendar.DAY_OF_MONTH, 15); // 设置日期为15日
calendar.set(Calendar.HOUR_OF_DAY, 16); // 设置小时为16点,24小时制
calendar.set(Calendar.MINUTE, 30); // 设置分钟为30分
calendar.set(Calendar.SECOND, 0); // 设置秒数为0秒
三、SimpleDateFormat类
SimpleDateFormat类可以将时间对象转化为字符串,或者根据字符串生成时间对象。
以下是一些常用的SimpleDateFormat类操作:
- 将Date对象转化为指定格式的时间字符串
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 定义日期格式
String strDate = sdf.format(date);
System.out.println(strDate); // 输出格式化后的时间字符串
- 将字符串转化为Date对象
String strDate = "2021-03-15 16:30:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 定义日期格式
Date date = sdf.parse(strDate); // 将时间字符串转化为Date对象
System.out.println(date); // 输出转化后的Date对象
四、LocalDate/LocalTime/LocalDateTime类
LocalDate/LocalTime/LocalDateTime类是Java 8之后引入的新日期时间API,解决了旧API的很多问题,是线程安全的。
以下是一些常用的LocalDate/LocalTime/LocalDateTime类操作:
- 获取当前日期/时间/日期时间
LocalDate localDate = LocalDate.now(); // 获取当前日期
LocalTime localTime = LocalTime.now(); // 获取当前时间
LocalDateTime localDateTime = LocalDateTime.now(); // 获取当前日期时间
- 获取年/月/日等信息
int year = localDate.getYear(); // 获取年份
int month = localDate.getMonthValue(); // 获取月份
int day = localDate.getDayOfMonth(); // 获取日期
int hour = localTime.getHour(); // 获取小时
int minute = localTime.getMinute(); // 获取分钟
int second = localTime.getSecond(); // 获取秒
示例:
LocalDate now = LocalDate.now();
LocalDate tomorrow = now.plusDays(1);
System.out.println("今天是:" + now + ",明天是:" + tomorrow);
输出:
今天是:2021-03-15,明天是:2021-03-16
LocalDateTime localDateTime = LocalDateTime.of(2021, Month.MARCH, 15, 16, 30, 0);
System.out.println(localDateTime);
输出:
2021-03-15T16:30
五、总结
以上就是JAVA中常用的日期时间类的用法,包括Calendar类、SimpleDateFormat类以及Java 8新API中的LocalDate/LocalTime/LocalDateTime类。
在使用时需要根据业务需求选择合适的时间处理类,根据需要获取或设置对应的时间信息,或者进行日期时间格式转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JAVA中的日期时间类用法总结 - Python技术站