java 时间的原生操作和工具类操作
package com.xc.test.dateoperation; import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateUtils; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Iterator; public class DateMain { public static void main(String[] args) throws ParseException { Date now = new Date(); // System.out.println("now:" + now);// Fri Aug 16 14:51:39 CST 2019 //日期add { // 封装Calendar类add方法 { Date date = add(now, Calendar.DAY_OF_MONTH, 1);//增加天数 // System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019 Date date2 = add(now, Calendar.MINUTE, 1);//增加分钟 // System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019 } // 通过DateUtils工具类 { Date date = DateUtils.addDays(now, 1);//增加天数 // System.out.println("date:" + date);// Sat Aug 17 14:51:39 CST 2019 Date date2 = DateUtils.addMinutes(now, 1);//增加分钟 // System.out.println("date2:" + date2);// Fri Aug 16 14:52:39 CST 2019 } } //判断2个日期是不是同一天 { // 判断Calendar的年,年所在的天数是否相等 boolean sameDay = isSameDay(now, now); // System.out.println(sameDay);//true // 通过DateUtils工具类 boolean sameDay2 = DateUtils.isSameDay(now, now); // System.out.println(sameDay2);//true } /* 获取一段日期 RANGE_WEEK_SUNDAY 从周日开始获取一周日期 RANGE_WEEK_MONDAY 从周一开始获取一周日期 RANGE_WEEK_RELATIVE 从当前时间开始获取一周日期 RANGE_WEEK_CENTER 以当前日期为中心获取一周日期 RANGE_MONTH_SUNDAY 从周日开始获取一个月日期 RANGE_MONTH_MONDAY 从周一开始获取一个月日期 */ Iterator<Calendar> iterator = DateUtils.iterator(now, DateUtils.RANGE_MONTH_SUNDAY); while (iterator.hasNext()) { Calendar next = iterator.next(); // System.out.println("next:" + next); String format = DateFormatUtils.format(next, "yyyy-MM-dd HH:mm:ss"); // System.out.println("format:" + format); } // 解析时间字符串 { // 使用SimpleDateFormat类 { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = sdf.parse("2019-08-16 15:36:16"); // System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019 } // 通过DateUtils工具类 { Date date = DateUtils.parseDate("2019-08-16 15:36:16", "yyyy-MM-dd HH:mm:ss"); // System.out.println("date:" + date);//Fri Aug 16 15:36:16 CST 2019 } } // 设置日期时间 { // 封装Calendar的set方法 { Date date = set(now, Calendar.DAY_OF_MONTH, 1); // System.out.println(date);//Thu Aug 01 16:04:08 CST 2019 String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"); // System.out.println("format:" + format);//2019-08-01 16:04:08 } // 通过DateUtils工具类 { Date date = DateUtils.setDays(now, 1); // System.out.println(date);//Thu Aug 01 16:04:08 CST 2019 String format = DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"); // System.out.println("format:" + format);//2019-08-01 16:04:08 } } //计算两个时间隔多少天 { int intervalDate = intervalDate(now, now); // System.out.println("intervalDate:" + intervalDate);//0 } } // 计算两个时间隔多少天 public static int intervalDate(Date startDate, Date endDate) { long startTime2 = startDate.getTime(); long endTime2 = endDate.getTime(); int amount = (int) ((endTime2 - startTime2) / (1000 * 3600 * 24)); return amount; } /** * 设置日期时间 * * @param date 待修改的日期 * @param calendarField 设置的单位 * @param amount 设置的数值 * @return Date 设置后的日期 */ private static Date set(Date date, int calendarField, int amount) { Calendar c = Calendar.getInstance(); c.setLenient(false); c.setTime(date); c.set(calendarField, amount); return c.getTime(); } /** * 判断2个日期是不是同一天 * * @param date1 待比较日期1 * @param date2 待比较日期2 * @return boolean */ public static boolean isSameDay(Date date1, Date date2) { Calendar cal1 = Calendar.getInstance(); cal1.setTime(date1); Calendar cal2 = Calendar.getInstance(); cal2.setTime(date2); return cal1.get(Calendar.YEAR) == cal2.get(Calendar.YEAR) && cal1.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR); } /** * 日期add * * @param date 待增日期 * @param calendarField 增加单位 * @param amount 增加数量 * @return Date 增加后日期 */ private static Date add(final Date date, int calendarField, int amount) { Calendar c = Calendar.getInstance(); c.setTime(date); c.add(calendarField, amount); return c.getTime(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2017-08-16 微信开发者工具 快捷键
2017-08-16 js 正则表达式的使用(标志 RegExp exec() test() compile() $1...$9)