JavaSE 常见时间日期
java.util包提供了Date类来封装当前的⽇期和时间#
构造函数#
//当前时间 Date() //从1970年1⽉1⽇起的毫秒数作为参数 Date(long millisec)
常见方法#
//返回⾃ 1970 年 1 ⽉ 1 ⽇ 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 long getTime( ) //调⽤此⽅法的Date对象在指定⽇期之后返回true,否则返回false。 boolean after(Date date) //调⽤此⽅法的Date对象在指定⽇期之前返回true,否则返回false。 boolean before(Date date)
JDK1.8时间日期处理类#
核心类#
LocalDate:不包含具体时间的⽇期。
LocalTime:不含⽇期的时间。
LocalDateTime:包含了⽇期及时间。
LocalDate常用API#
LocalDate today = LocalDate.now(); System.out.println("今天⽇期:" + today); //获取年,⽉,⽇,周⼏ System.out.println("现在是哪年:"+today.getYear()); System.out.println("现在是哪⽉:"+today.getMonth()); System.out.println("现在是哪⽉(数字):"+today.getMonthValue()); System.out.println("现在是⼏号:"+today.getDayOfMonth()); System.out.println("现在是周⼏:"+today.getDayOfWeek()); //加减年份, 加后返回的对象才是修改后的, 旧的依旧是旧的 LocalDate changeDate = today.plusYears(1); System.out.println("加后是哪年:"+changeDate.getYear()); System.out.println("旧的是哪年:"+today.getYear()); //⽇期⽐较 System.out.println("isAfter: "+changeDate.isAfter(today)); //getYear() int 获取当前⽇期的年份 //getMonth() Month 获取当前⽇期的⽉份对象 //getMonthValue() int 获取当前⽇期是第⼏⽉ //getDayOfWeek() DayOfWeek 表示该对象表示的⽇期是星期⼏ //getDayOfMonth() int 表示该对象表示的⽇期是这个⽉第⼏天 //getDayOfYear() int 表示该对象表示的⽇期是今年第⼏天 //withYear(int year) LocalDate 修改当前对象的年份 //withMonth(int month) LocalDate 修改当前对象的⽉份 //withDayOfMonth(int dayOfMonth) LocalDate 修改当前对象在当⽉的⽇期 //plusYears(long yearsToAdd) LocalDate 当前对象增加指定的年份数 //plusMonths(long monthsToAdd) LocalDate 当前对象增加指定的⽉份数 //plusWeeks(long weeksToAdd) LocalDate 当前对象增加指定的周数 //plusDays(long daysToAdd) LocalDate 当前对象增加指定的天数 //minusYears(long yearsToSubtract) LocalDate 当前对象减去指定的年数 //minusMonths(long monthsToSubtract) LocalDate 当前对象减去注定的⽉数 //minusWeeks(long weeksToSubtract) LocalDate 当前对象减去指定的周数 //minusDays(long daysToSubtract) LocalDate 当前对象减去指定的天数 //compareTo(ChronoLocalDate other) int ⽐较当前对象和other对象在时 间上的⼤⼩,返回值如果为正,则当前对象时间较晚, //isBefore(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在 other对象⽇期之前 //isAfter(ChronoLocalDate other) boolean ⽐较当前对象⽇期是否在 other对象⽇期之后 //isEqual(ChronoLocalDate other) boolean ⽐较两个⽇期对象是否相等
JDK1.8时间日期格式化#
为什么要时间⽇期做格式化
程序打印,或者⽹⻚显示时间⽇期格式,⽤户有不同的需求,则需要根据⼀定的规则进⾏格式化
常用占位符#
y 四位数年份 M ⽉ d ⽇ h 时 在上午或下午 (1~12) H 时 在⼀天中 (0~23) m 分 s 秒 S 毫秒
JDK1.8之后,引入线程安全的日期与时间DateTimeFormatter#
LocalDateTime ldt = LocalDateTime.now(); System.out.println(ldt); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String ldtStr = dtf.format(ldt); System.out.println(ldtStr);
获取指定的日期时间对象#
LocalDateTime ldt = LocalDateTime.of(2020, 11, 11, 8, 20, 30);
System.out.println(ldt);
计算日期时间差#
java.time.Duration
LocalDateTime today = LocalDateTime.now(); System.out.println(today); LocalDateTime changeDate = LocalDateTime.of(2020,10,1,10,40,30); System.out.println(changeDate); Duration duration = Duration.between( today,changeDate);//第⼆个参数减第⼀ 个参数 System.out.println(duration.toDays());//两个时间差的天数 System.out.println(duration.toHours());//两个时间差的⼩时数 System.out.println(duration.toMinutes());//两个时间差的分钟数 System.out.println(duration.toMillis());//两个时间差的毫秒数 System.out.println(duration.toNanos());//两个时间差的纳秒数
分类:
JavaSE
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-07-31 ASP.Net MVC 路由及路由调试工具RouteDebug
2019-07-31 ASP.Net MVC过滤器
2019-07-31 Oracle 去重后排序