关于Date(int, int, int)‘ is deprecated的处理解决方法

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 关于Date(int, int, int)‘ is deprecated的处理解决方法,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

// 将日期转换为指定格式的字符串('Date(int, int, int)' is deprecated)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String sDate = sdf.format(new Date(year - 1900, month, dayOfMonth));

以上代码在idea中会冒出上面的提示“Date(int, int, int)’ is deprecated”

关于Date(int, int, int)‘ is deprecated的处理解决方法

 官方的意思是建议大家少用。但并不是不能用,可以看到在13年前就划掉了。

关于Date(int, int, int)‘ is deprecated的处理解决方法

替代方案有三种:

1,使用Calendar类的set()方法设置年月日信息,再使用getTime()方法将Calendar对象转换为Date对象。

Calendar calendar = Calendar.getInstance();
calendar.set(year, month, dayOfMonth);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
String sDate1 = sdf1.format(calendar.getTime());

2,使用LocalDate类的of()方法创建LocalDate对象,再使用atStartOfDay()方法将其转换为LocalDateTime对象,最后使用toInstant()方法将其转换为Date对象

LocalDate localDate = LocalDate.of(year, month + 1, dayOfMonth);
LocalDateTime localDateTime = localDate.atStartOfDay();
Date date = Date.from(localDateTime.toInstant(ZoneOffset.ofHours(8)));

3,使用SimpleDateFormat类将字符串类型的日期转换为Date对象

String strDate = year + "-" + (month + 1) + "-" + dayOfMonth;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = sdf.parse(strDate);

总结:

实际情况是这个官方早在10几年以前就划掉了,不建议再使用,但是一直都提供,你仍然可以使用,也不会有任何问题和后遗症。只是基于优化性能的方面考虑建议用JAVA8的 LocalDate类或者JAVA7以后的Calendar类来实现,实际上写起来最爽的还是最原始的,要将int,int,int转成Date再转成yyyy-MM-dd字符串可以用以下一行代码完成:

String sDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date(year - 1900, month, dayOfMonth));

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/139874.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!