前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java日期计算常用方法《简述版》

Java日期计算常用方法《简述版》

作者头像
猫头虎
发布2024-04-07 15:11:18
540
发布2024-04-07 15:11:18
举报

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍专栏》学会IDEA常用操作,工作效率翻倍~💐 🌊 《100天精通Golang(基础入门篇)》学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🍁🐥

Java日期计算常用方法《简述版》

Java中进行日期计算常用的方法包括以下几种,这里提供简要的总结:

  1. java.util.Date 和 java.util.Calendar:
    • java.util.Date 类已经过时,不推荐使用。java.util.Calendar 提供了日期和时间的基本操作方法,但使用起来繁琐。
  2. java.time包(Java 8引入的新时间API):
    • LocalDate:处理日期,无时区信息。
    • LocalTime:处理时间,无日期信息。
    • LocalDateTime:处理日期和时间。
    • ZonedDateTime:带有时区信息的日期和时间。
    • Period:处理日期间隔。
    • Duration:处理时间间隔。
  3. 日期计算操作:
    • 创建日期对象:使用上述类的静态方法或构造函数创建。
    • 增减日期:使用plusminus方法,传入PeriodDuration对象。
    • 计算两个日期的间隔:使用ChronoUnit类的静态方法,例如ChronoUnit.DAYS.between(date1, date2)
  4. 格式化和解析日期:
    • 使用DateTimeFormatter类进行日期和时间的格式化和解析。
  5. 常用操作:
    • 获取当前日期和时间:使用LocalDate.now()LocalTime.now()LocalDateTime.now()
    • 获取特定日期或时间:使用of方法,如LocalDate.of(2023, 8, 11)
    • 判断日期前后:使用isBeforeisAfter等方法进行比较。

总的来说,Java 8 引入的java.time包提供了更为方便和灵活的日期计算方式,避免了以前java.util.Calendar的繁琐操作。根据需要,选择适合的日期类和方法来执行日期计算和操作。

引入依赖

代码语言:javascript
复制
<dependency>  
        <groupId>joda-time</groupId>  
        <artifactId>joda-time</artifactId>  
        <version>2.9.2</version>  
    </dependency>  

1、获取简单日期

代码语言:javascript
复制
		//方法一:取系统点间  
		DateTime dt1 = new DateTime();  
		  
		//方法二:通过java.util.Date对象生成  
		DateTime dt2 = new DateTime(new Date());  
		  
		//方法三:指定年月日点分秒生成(参数依次是:年,月,日,时,分,秒,毫秒)  
		DateTime dt3 = new DateTime(2012, 5, 20, 13, 14, 0, 0);  
		  
		//方法四:ISO8601形式生成  
		DateTime dt4 = new DateTime("2012-05-20");  
		DateTime dt5 = new DateTime("2012-05-20T13:14:00");  
		  
		//只需要年月日的时候  
		LocalDate localDate = new LocalDate(2021, 9, 1);// September 1, 2021 
		  
		//只需要时分秒毫秒的时候  
		LocalTime localTime = new LocalTime(13, 14, 26, 0);// 1:14:26PM  

2、获取年月日点分秒

代码语言:javascript
复制
		DateTime dt = new DateTime();  
		//年  
		int year = dt.getYear();  
		//月  
		int month = dt.getMonthOfYear();  
		//日  
		int day = dt.getDayOfMonth();  
		//星期  
		int week = dt.getDayOfWeek();  
		//点  
		int hour = dt.getHourOfDay();  
		//分  
		int min = dt.getMinuteOfHour();  
		//秒  
		int sec = dt.getSecondOfMinute();  
		//毫秒  
		int msec = dt.getMillisOfSecond();  

3、星期的特殊处理

代码语言:javascript
复制
		DateTime dt = new DateTime();  
		  
		//星期  
		switch(dt.getDayOfWeek()) {  
		case DateTimeConstants.SUNDAY:  
		    System.out.println("星期日");  
		    break;  
		case DateTimeConstants.MONDAY:  
		    System.out.println("星期一");  
		    break;  
		case DateTimeConstants.TUESDAY:  
		    System.out.println("星期二");  
		    break;  
		case DateTimeConstants.WEDNESDAY:  
		    System.out.println("星期三");  
		    break;  
		case DateTimeConstants.THURSDAY:  
		    System.out.println("星期四");  
		    break;  
		case DateTimeConstants.FRIDAY:  
		    System.out.println("星期五");  
		    break;  
		case DateTimeConstants.SATURDAY:  
		    System.out.println("星期六");  
		    break;  
		}  

4、与JDK日期对象的转换

代码语言:javascript
复制
		DateTime dt = new DateTime();  
		  
		//转换成java.util.Date对象  
		Date d1 = new Date(dt.getMillis());  
		Date d2 = dt.toDate();  
		  
		//转换成java.util.Calendar对象  
		Calendar c1 = Calendar.getInstance();  
		c1.setTimeInMillis(dt.getMillis());  
		Calendar c2 = dt.toCalendar(Locale.getDefault());  

5、日期前后推算

代码语言:javascript
复制
		DateTime dt = new DateTime();  
		  
		     
		//明天  
		DateTime tomorrow = dt.plusDays(1);   
		//昨天  
		DateTime yesterday = dt.minusDays(1);        
		//1个月前  
		DateTime before1month = dt.minusMonths(1);        
		//3个月后  
		DateTime after3month = dt.plusMonths(3);          
		//2年前  
		DateTime before2year = dt.minusYears(2);          
		//5年后  
		DateTime after5year = dt.plusYears(5); 

6、取特殊日期

代码语言:javascript
复制
		DateTime dt = new DateTime();     
		  
		//月末日期    
		DateTime lastday = dt.dayOfMonth().withMaximumValue();  
		  
		//90天后那周的周一  
		DateTime firstday = dt.plusDays(90).dayOfWeek().withMinimumValue();  

7、时区

代码语言:javascript
复制
		//默认设置为日本时间  
		DateTimeZone.setDefault(DateTimeZone.forID("Asia/Tokyo"));  
		DateTime dt1 = new DateTime();  
		  
		//伦敦时间  
		DateTime dt2 = new DateTime(DateTimeZone.forID("Europe/London"));

8、计算区间

代码语言:javascript
复制
		DateTime begin = new DateTime("2021-01-02");  
		DateTime end = new DateTime("2021-01-01");  
		  
		//计算区间毫秒数  
		Duration d = new Duration(begin, end);  
		long time = d.getMillis();  
		  
		//计算区间天数  
		Period p = new Period(begin, end, PeriodType.days());  
		int days = p.getDays();  
		  
		//计算特定日期是否在该区间内  
		Interval i = new Interval(begin, end);  
		boolean contained = i.contains(new DateTime("2021-01-01"));  

9、日期比较

代码语言:javascript
复制
		DateTime d1 = new DateTime("2021-01-01");  
		DateTime d2 = new DateTime("2021-01-01");  
		  
		//和系统时间比  
		boolean b1 = d1.isAfterNow();  
		boolean b2 = d1.isBeforeNow();  
		boolean b3 = d1.isEqualNow();  
		  
		//和其他日期比  
		boolean f1 = d1.isAfter(d2);  
		boolean f2 = d1.isBefore(d2);  
		boolean f3 = d1.isEqual(d2); 

10、格式化输出

代码语言:javascript
复制
		DateTime dateTime = new DateTime();  
		  
		String s1 = dateTime.toString("yyyy/MM/dd hh:mm:ss.SSSa");  
		String s2 = dateTime.toString("yyyy-MM-dd HH:mm:ss");  
		String s3 = dateTime.toString("EEEE dd MMMM, yyyy HH:mm:ssa");  
		String s4 = dateTime.toString("yyyy/MM/dd HH:mm ZZZZ");  
		String s5 = dateTime.toString("yyyy/MM/dd HH:mm Z");  
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Java日期计算常用方法《简述版》
  • 引入依赖
  • 1、获取简单日期
  • 2、获取年月日点分秒
  • 3、星期的特殊处理
  • 4、与JDK日期对象的转换
  • 6、取特殊日期
  • 7、时区
  • 8、计算区间
  • 9、日期比较
  • 10、格式化输出
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档