大家好,欢迎来到IT知识分享网。
文章目录
一、使用Date进行日期加减
⭐什么是Date日期类型?
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,并且DateFormat类应用于格式化和解析日期字符串。 在相应的方法Date被弃用。
⭐Date日期类型
在类的所有方法Date接受或返回年,月,日,小时,分钟和秒值,可以分配一个 Date对象,并将其初始化为表示自称为“时代”的标准基准时间以后的指定毫秒数,即1970年1月1日00:00:00GMT。
⭐如何用Date日期加减
代码演示:
public class Test{
public static void main(String[] args) {
//获取当前时间 Date date=new Date(); //把当前时间转化为时间戳 long time = date.getTime(); //定义一天的时间戳 long day=; //定义一个月的时间戳 long month=L; long year=L; //创建时间格式对象 SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); //将时间戳转化为字符串并且加上一天的时间戳 String time2=sdf.format(new Date(time+day)); //将时间戳转化为字符串并且加上一个月的时间戳 String time3=sdf.format(new Date(time+month)); //将时间戳转化为字符串并且加上一年的时间戳 String time4=sdf.format(new Date(time+year)); System.out.println("把当前时间增加一天:"+time2); System.out.println("把当前时间增加一个月:"+time3); System.out.println("把当前时间增加一年:"+time4); } }
运行结果如下:
二、使用Calendar对象完成
🌙什么是Calendar
Calendar类:
🌙如何使用Calendar获取年、月、日
public class Test6{
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();//获取一个日历对象 //为日历对象定义一个指定日期的数据 calendar.set(2011,1,11,8,35,15);//为日历对象添加年、月、日 Date date=calendar.getTime(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd"); System.out.println(simpleDateFormat.format(date));//将日期转换为字符串 //获取日历对象的年、月、日 int year = calendar.get(Calendar.YEAR); //获取日历对象的年份 int month = calendar.get(Calendar.MONTH);//获取日历对象的月份 int day = calendar.get(Calendar.DAY_OF_MONTH);//获取日历对象中月份的第几天 System.out.println("年份:"+year+"\t月份:"+month+"\t第"+day+"天"); int hour = calendar.get(Calendar.HOUR);//获取日历对象的时 int minute = calendar.get(Calendar.MINUTE);//获取日历对象的分 int second = calendar.get(Calendar.SECOND);//获取日历对象的秒 System.out.println("时"+hour+"分"+minute+"秒"+second); } }
🌙使用Calendar对日期加减
代码演示
public class Test7{
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();//获取一个日历对象 Date date=calendar.getTime(); SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd"); System.out.println("当前日期:"+simpleDateFormat.format(date));//将日期转换为字符串 calendar.add(Calendar.YEAR,2); //把当前的年份增加2年 calendar.add(Calendar.MONTH,-3); //把当前的月份减少3月 int year2= calendar.get(Calendar.YEAR); int month2= calendar.get(Calendar.MONTH); System.out.println("增加后的年份"+year2); System.out.println("减少后的月份:"+month2); } }
运行结果如下:
三、使用LocalDateTime时间类型
🌌为什么使用LocalDateTime
Java8出的新的时间日期API都是线程安全的比如LocalDate、LocalTime、LocalDateTime这三个类,计算功能强大,并且性能更好,代码更简洁。
🌌LocalDateTime简介
LocalDate :表示当前日期,相当于:yyyy-MM-dd
LocalTime :表示当前时间,相当于:HH:mm:ss (24小时制) 或者 hh:mm:ss(12小时制)
LocalDateTime :表示当前日期时间,相当于:yyyy-MM-ddTHH:mm:ss ,是前两者的结合
DateTimeFormatter :表示格式化类型,可以取代SimpleDateFormat
Instant :表示时刻,用来表示时间线上的一个点(瞬时),也可以说是时间戳
ZoneId、ZoneOffset :表示时区
ZonedDateTime :表示带时区的日期和时间,是前两者的结合
Duration :表示两个时刻之间的时间间隔
Period :表示两个日期之间的天数
🌌获取日期的年、月、日、周、时、分、秒
代码演示:
public class Test{
public static void main(String[] args) {
//获取当前日期 LocalDateTime datetime=LocalDateTime.now(); System.out.println(datetime); int year = datetime.getYear();//获取日期对象的年份 int monthValue = datetime.getMonthValue();//获取日期对象的月份 int dayOfMonth = datetime.getDayOfMonth();//获取日期对象的日期 int dayOfWeek =datetime.getDayOfWeek().getValue();//获取日期对象的周期 int hour = datetime.getHour();//获取日期对象的时 int minute = datetime.getMinute();//获取日期对象的分钟 int second = datetime.getSecond();//获取日期对象的秒 System.out.println("年:"+year+"\t月:"+monthValue+"\t日:"+dayOfMonth+"\t时:"+hour+"\t分:"+minute+"\t秒:"+second+"\t周:"+dayOfWeek); } }
运行结果:
🌌日期加减
代码演示
public class Test{
public static void main(String[] args) {
//根据指定的日期创建对象 LocalDateTime datetime2=LocalDateTime.of(2022,11,17,14,35,20); System.out.println("当前日期时间:"+datetime2); LocalDateTime plusYear=datetime2.plusYears(2L);//把当前的年份增加2年 LocalDateTime plusMonths = datetime2.plusMonths(1L);//把当前的月份增加1个月 LocalDateTime plusDays = datetime2.plusDays(10L);//把当前的日期增加10天 LocalDateTime plusHours = datetime2.plusHours(-3L);//把当前的时间减少3小时 LocalDateTime plusMinutes = datetime2.plusMinutes(-20L);//把当前的时间减少20分钟 LocalDateTime plusSeconds = datetime2.plusSeconds(15);//把当前的时间增加15秒 System.out.println("年:"+plusYear+"\n月:"+plusMonths+"\n日:"+plusDays+"\n时:"+plusHours+"\n分:"+plusMinutes+"\n秒:"+plusSeconds); } }
运行结果:
🍋最后🍋
总结不易,希望小宝们不要吝啬你们的👍哟(^U^)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/124747.html