Java实现时间日期的方法有哪些
本文小编为大家详细介绍“Java实现时间日期的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java实现时间日期的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、Calendar(1)、Calender介绍
Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法。所以为了计时的统一,必需指定一个日历的选择。那现在最为普及和通用的日历就是"Gregorian Calendar"。也就是我们在讲述年份时常用"公元**年"。Calendar 在 Java 中是一个抽象类(Abstract Class),GregorianCalendar 是它的一个具体实现。Calendar.getInstance()中所获得的实例就是一个"GreogrianCalendar"对象。
(2)、简单的日期使用Calendarcal=Calendar.getInstance();System.out.println(cal.get(Calendar.DATE));//-----------------------今天是几号System.out.println(cal.get(Calendar.DAY_OF_MONTH));//---------------今天是一月的第几天System.out.println(cal.get(Calendar.DAY_OF_WEEK));//----------------从星期天开始计算,如果今天星期二,那么返回3System.out.println(cal.get(Calendar.DAY_OF_YEAR));//----------------今天是一年的第几天System.out.println(cal.get(Calendar.HOUR));//-----------------------现在是几点12小时制System.out.println(cal.get(Calendar.HOUR_OF_DAY));//----------------现在是几点24小时制,一般使用这个属性赋值System.out.println(cal.get(Calendar.MILLISECOND));//----------------现在的毫秒System.out.println(cal.get(Calendar.MINUTE));//---------------------现在是几分System.out.println(cal.get(Calendar.SECOND));//---------------------现在是几秒System.out.println(cal.get(Calendar.WEEK_OF_MONTH));//--------------现在是一个月中的第几周System.out.println(cal.get(Calendar.WEEK_OF_YEAR));//----------------现在是一个年中的第几周System.out.println(cal.get(Calendar.MONTH));//-----------------------月份获取需要+1,那么,赋值时需要-1System.out.println(cal.get(Calendar.MONTH)-1);//即可获得上个月的月份(3)、与Date之间的转换
Calendarcalendar=Calendar.getInstance();//从一个Calendar对象中获取Date对象Datedate=calendar.getTime();//将Date对象反应到一个Calendar对象中,//先获得一个实例,然后设置Date对象calendar.setTime(date);月份的起始值为0而不是1,所以要设置八月时,我们用7而不是8。calendar.set(Calendar.MONTH,7);计算2000-01-01是星期几calendar.set(2000,1,1)calendar.get(calendar.DAY_OF_WEEK)
当然Calender是最早的时间处理,是jdk1.6的东西难免比较过时
二、Apache下的DateUtils(1)、引入包
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.9</version></dependency>
(2)、没什么可说的上翻译就行
/***以秒为标准时间的毫秒数*/publicstaticfinallongMILLIS_PER_SECOND=1000/***以分钟为标准时间的毫秒数*/publicstaticfinallongMILLIS_PER_MINUTE=60*MILLIS_PER_SECOND/***以小时为标准时间的毫秒数*/publicstaticfinallongMILLIS_PER_HOUR=60*MILLIS_PER_MINUTE/***以天为标准时间的毫秒数*/publicstaticfinallongMILLIS_PER_DAY=24*MILLIS_PER_HOUR/***这个类型是半个月,所以这可以代表日期是上还是下半个月。*/publicstaticfinalintSEMI_MONTH=1001/***周范围,从星期日开始。*/publicstaticfinalintRANGE_WEEK_SUNDAY=1/***周范围,从星期一开始。*/publicstaticfinalintRANGE_WEEK_MONDAY=2/***周范围,从关注的那天开始。*/publicstaticfinalintRANGE_WEEK_RELATIVE=3/***周范围,以关注的天为中心。*/publicstaticfinalintRANGE_WEEK_CENTER=4/***月范围,从星期日开始。*/publicstaticfinalintRANGE_MONTH_SUNDAY=5/***月范围,从星期一开始。*/publicstaticfinalintRANGE_MONTH_MONDAY=6/***不应在标准编成构造获取实列,而应该直接使用类中的静态方法,如:DateUtils.parseDate(str)。*此构造函数意在允许需要一个javabeen实列的工具中使用。*/publicDateUtils()/***判断两个日期时间是否是同一天。**@paramdate1第一个日期,不可修改,非null*@paramdate2第二个日期,不可修改,非null*/publicstaticbooleanisSameDay(finalDatedate1,finalDatedate2)/***判断两个日历时间是否是同一天。**@paramcal1第一个日历,不可修改,非null*@paramcal2第二个日历,不可修改,非null*/publicstaticbooleanisSameDay(finalCalendarcal1,finalCalendarcal2)/***判断两个日期是否相同*这种方法比较两个对象的毫秒时间**@paramdate1第一个日期,不可修改,非null*@paramdate2第二个日期,不可修改,非null*/publicstaticbooleanisSameInstant(finalDatedate1,finalDatedate2)/***判断两个日历是否相同*这种方法比较两个对象的毫秒时间**@paramcal1第一个日历,不可修改,非null*@paramcal2第二个日历,不可修改,非null*/publicstaticbooleanisSameInstant(finalCalendarcal1,finalCalendarcal2)/***判断两个日历本地时间是否相同*除了比较数值外两个日历对象的类型还要相同**@paramcal1第一个日历,不可修改,非null*@paramcal2第二个日历,不可修改,非null*/publicstaticbooleanisSameLocalTime(finalCalendarcal1,finalCalendarcal2)/***尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str。**解析时会逐个使用parsePatterns中的格式,如果都没有匹配上,则抛出异常ParseException。**@paramstr被解析的时间字符串,非null*@paramparsePatterns用于解析str的时间格式,有一个或几个,非null*/publicstaticDateparseDate(finalStringstr,finalString...parsePatterns)throwsParseException/***尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str。*解析时会使用给定的日期格式符locale。**解析时会逐个使用parsePatterns中的格式,如果都没有匹配上,则抛出异常ParseException。**@paramstr被解析的时间字符串,非null*@paramlocale使用locale中的日期格式符,如果为null,则使用系统默认的locale*@paramparsePatterns用于解析str的时间格式,有一个或几个,非null*/publicstaticDateparseDate(finalStringstr,finalLocalelocale,finalString...parsePatterns)throwsParseException/***尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str。**解析时会逐个使用parsePatterns中的格式,如果都没有匹配上,则抛出异常ParseException。*解析器解析严格不允许的日期,如:"February942,1996"。**@paramstr被解析的时间字符串,非null*@paramparsePatterns用于解析str的时间格式,有一个或几个,非null*/publicstaticDateparseDateStrictly(finalStringstr,finalString...parsePatterns)throwsParseException/***尝试用parsePatterns中各种不同的日期格式解析代表时间的字符串str。*解析时会使用给定的日期格式符locale。**解析时会逐个使用parsePatterns中的格式,如果都没有匹配上,则抛出异常ParseException。*解析器解析严格不允许的日期,如:"February942,1996"。**@paramstr被解析的时间字符串,非null*@paramlocale使用locale中的日期格式符,如果为null,则使用系统默认的locale*@paramparsePatterns用于解析str的时间格式,有一个或几个,非null*/publicstaticDateparseDateStrictly(finalStringstr,finalLocalelocale,finalString...parsePatterns)throwsParseException/***在日期date上增加amount年。**@paramdate处理的日期,非null*@paramamount要加的年数,可能为负数*/publicstaticDateaddYears(finalDatedate,finalintamount)/***在日期date上增加amount月。**@paramdate处理的日期,非null*@paramamount要加的月数,可能为负数*/publicstaticDateaddMonths(finalDatedate,finalintamount)/***在日期date上增加amount周。**@paramdate处理的日期,非null*@paramamount要加的周数,可能为负数*/publicstaticDateaddWeeks(finalDatedate,finalintamount)/***在日期date上增加amount天。**@paramdate处理的日期,非null*@paramamount要加的天数,可能为负数*/publicstaticDateaddDays(finalDatedate,finalintamount)/***在日期date上增加amount小时。**@paramdate处理的日期,非null*@paramamount要加的小时数,可能为负数*/publicstaticDateaddHours(finalDatedate,finalintamount)/***在日期date上增加amount分钟。**@paramdate处理的日期,非null*@paramamount要加的分钟数,可能为负数*/publicstaticDateaddMinutes(finalDatedate,finalintamount)/***在日期date上增加amount秒。**@paramdate处理的日期,非null*@paramamount要加的秒数,可能为负数*/publicstaticDateaddSeconds(finalDatedate,finalintamount)/***在日期date上增加amount毫秒。**@paramdate处理的日期,非null*@paramamount要加的毫秒数,可能为负数*/publicstaticDateaddMilliseconds(finalDatedate,finalintamount)/***给日期data设置一个新的年份。**@paramdate处理的日期,非null*@paramamount要设置的年份*/publicstaticDatesetYears(finalDatedate,finalintamount)/***给日期data设置一个新的月份。**@paramdate处理的日期,非null*@paramamount要设置的月份*/publicstaticDatesetMonths(finalDatedate,finalintamount)/***给日期data设置一个新的天。**@paramdate处理的日期,非null*@paramamount要设置的天*/publicstaticDatesetDays(finalDatedate,finalintamount)/***给日期data设置一个新的小时。**@paramdate处理的日期,非null*@paramamount要设置的小时*/publicstaticDatesetHours(finalDatedate,finalintamount)/***给日期data设置一个新的分钟。**@paramdate处理的日期,非null*@paramamount要设置的分钟*/publicstaticDatesetMinutes(finalDatedate,finalintamount)/***给日期data设置一个新的秒。**@paramdate处理的日期,非null*@paramamount要设置的秒*/publicstaticDatesetSeconds(finalDatedate,finalintamount)/***给日期data设置一个新的毫秒。**@paramdate处理的日期,非null*@paramamount要设置的毫秒*/publicstaticDatesetMilliseconds(finalDatedate,finalintamount)/***将一个日期放到日历中。*/publicstaticCalendartoCalendar(finalDatedate)/***根据阈值field四舍五入日历date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1April20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDateround(finalDatedate,finalintfield)/***根据阈值field四舍五入日历date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1April20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticCalendarround(finalCalendardate,finalintfield)/***根据阈值field四舍五入日历date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1April20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDateround(finalObjectdate,finalintfield)/***根据阈值field截取日期date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200213:00:00.000;*如果field为MONTH,它将返回1Mar20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDatetruncate(finalDatedate,finalintfield)/***根据阈值field截取日历date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200213:00:00.000;*如果field为MONTH,它将返回1Mar20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticCalendartruncate(finalCalendardate,finalintfield)/***根据阈值field截取日期date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200213:00:00.000;*如果field为MONTH,它将返回1Mar20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDatetruncate(finalObjectdate,finalintfield)/***根据阈值field向上舍入日期date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1Apr20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDateceiling(finalDatedate,finalintfield)/***根据阈值field向上舍入日期date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1Apr20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticCalendarceiling(finalCalendardate,finalintfield)/***根据阈值field向上舍入日期date。**例如,如果你的时间是28Mar200213:45:01.231,*如果field为HOUR,它将返回28Mar200214:00:00.000;*如果field为MONTH,它将返回1Apr20020:00:00.000。**@paramdate处理的日期,非null*@paramfield阈值*/publicstaticDateceiling(finalObjectdate,finalintfield)/***根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器。**如传入的时间是Thursday,July4,2002,范围类型是RANGE_MONTH_SUNDAY,*则返回迭代器的范围是从Sunday,June30,2002到Saturday,August3,2002**@paramfocus指定的时间*@paramrangeStyle范围类型,值必须是如下之一:*DateUtils.RANGE_MONTH_SUNDAY,*DateUtils.RANGE_MONTH_MONDAY,*DateUtils.RANGE_WEEK_SUNDAY,*DateUtils.RANGE_WEEK_MONDAY,*DateUtils.RANGE_WEEK_RELATIVE,*DateUtils.RANGE_WEEK_CENTER*/publicstaticIterator<Calendar>iterator(finalDatefocus,finalintrangeStyle)/***根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器。**如传入的时间是Thursday,July4,2002,范围类型是RANGE_MONTH_SUNDAY,*则返回迭代器的范围是从Sunday,June30,2002到Saturday,August3,2002**@paramfocus指定的时间*@paramrangeStyle范围类型,值必须是如下之一:*DateUtils.RANGE_MONTH_SUNDAY,*DateUtils.RANGE_MONTH_MONDAY,*DateUtils.RANGE_WEEK_SUNDAY,*DateUtils.RANGE_WEEK_MONDAY,*DateUtils.RANGE_WEEK_RELATIVE,*DateUtils.RANGE_WEEK_CENTER*/publicstaticIterator<Calendar>iterator(finalCalendarfocus,finalintrangeStyle)/***根据指定的时间focus和范围类型rangeStyle构建一个时间范围迭代器。**如传入的时间是Thursday,July4,2002,范围类型是RANGE_MONTH_SUNDAY,*则返回迭代器的范围是从Sunday,June30,2002到Saturday,August3,2002**@paramfocus指定的时间*@paramrangeStyle范围类型,值必须是iterator(Calendar,int)方法注释中列出的*/publicstaticIterator<?>iterator(finalObjectfocus,finalintrangeStyle)/***返回指定分段内的毫秒数。所有大于分段的DateFields将被忽略。**请求任何日期毫秒,将返回当前秒的毫秒数(返回一个数字在0和999之间)。*有效的分段值是:Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、*Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、*Calendar.SECOND和Calendar.MILLISECOND*分段值小于或等于MILLISECOND,将返回0。**January1,20087:15:10.538withCalendar.SECONDasfragmentwillreturn538*January6,20087:15:10.538withCalendar.SECONDasfragmentwillreturn538*January6,20087:15:10.538withCalendar.MINUTEasfragmentwillreturn10538*January16,20087:15:10.538withCalendar.MILLISECONDasfragmentwillreturn0*(amillisecondcannotbesplitinmilliseconds)**@paramcalendar获取值得日历对象,非null*@paramfragment分段值*/publicstaticlonggetFragmentInMilliseconds(finalCalendarcalendar,finalintfragment)/***返回指定分段内的秒数。所有大于分段的DateFields将被忽略。**请求任何日期秒,将返回当前的分钟的秒数(返回一个数字在0和59之间)。*有效的分段值是:Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、*Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、*Calendar.SECOND和Calendar.MILLISECOND*分段值小于或等于SECOND,将返回0。**January1,20087:15:10.538withCalendar.MINUTEasfragmentwillreturn10*January6,20087:15:10.538withCalendar.MINUTEasfragmentwillreturn10*January6,20087:15:10.538withCalendar.DAY_OF_YEARasfragmentwillreturn26110*(7*3600+15*60+10)</li>*January16,20087:15:10.538withCalendar.MILLISECONDasfragmentwillreturn0**@paramcalendar获取值得日历对象,非null*@paramfragment分段值*/publicstaticlonggetFragmentInSeconds(finalCalendarcalendar,finalintfragment)/***返回指定分段内的分钟数。所有大于分段的DateFields将被忽略。**请求任何日期分钟,将返回当前的小时的分钟数(返回一个数字在0和59之间)*有效的分段值是:Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、*Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、*Calendar.SECOND和Calendar.MILLISECOND*分段值小于或等于MINUTE,将返回0。**January1,20087:15:10.538withCalendar.HOUR_OF_DAYasfragmentwillreturn15*January6,20087:15:10.538withCalendar.HOUR_OF_DAYasfragmentwillreturn15*January1,20087:15:10.538withCalendar.MONTHasfragmentwillreturn15*January6,20087:15:10.538withCalendar.MONTHasfragmentwillreturn435(7*60+15)*January16,20087:15:10.538withCalendar.MILLISECONDasfragmentwillreturn0**@paramcalendar获取值得日历对象,非null*@paramfragment分段值*/publicstaticlonggetFragmentInMinutes(finalCalendarcalendar,finalintfragment)/***返回指定分段内的小时数。所有大于分段的DateFields将被忽略。**请求任何日期小时,将返回当前的天的小时数(返回一个数字在0和23之间)。*有效的分段值是:Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、*Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、*Calendar.SECOND和Calendar.MILLISECOND*分段值小于或等于HOUR_OF_DAY,将返回0。**January1,20087:15:10.538withCalendar.DAY_OF_YEARasfragmentwillreturn7*January6,20087:15:10.538withCalendar.DAY_OF_YEARasfragmentwillreturn7*January1,20087:15:10.538withCalendar.MONTHasfragmentwillreturn7*January6,20087:15:10.538withCalendar.MONTHasfragmentwillreturn127(5*24+7)*January16,20087:15:10.538withCalendar.MILLISECONDasfragmentwillreturn0**@paramcalendar获取值得日历对象,非null*@paramfragment分段值*/publicstaticlonggetFragmentInHours(finalCalendarcalendar,finalintfragment)/***返回指定分段内的天数。所有大于分段的DateFields将被忽略。**请求任何日期天数,将返回当前的月的天数(返回一个数字在1和31之间)。*有效的分段值是:Calendar.YEAR、Calendar.MONTH、Calendar.DAY_OF_YEAR、*Calendar.DATE、Calendar.HOUR_OF_DAY、Calendar.MINUTE、*Calendar.SECOND和Calendar.MILLISECOND*分段值小于或等于DATE,将返回0。**January28,2008withCalendar.MONTHasfragmentwillreturn28*February28,2008withCalendar.MONTHasfragmentwillreturn28*January28,2008withCalendar.YEARasfragmentwillreturn28*February28,2008withCalendar.YEARasfragmentwillreturn59*January28,2008withCalendar.MILLISECONDasfragmentwillreturn0**@paramcalendar获取值得日历对象,非null*@paramfragment分段值*/publicstaticlonggetFragmentInDays(finalCalendarcalendar,finalintfragment)/***截取比较两个日历对象的field处的值是否相同。**@paramcal1第一个日历对象,非null*@paramcal2第二个日历对象,非null*@paramfieldCalendar中的阈值*/publicstaticbooleantruncatedEquals(finalCalendarcal1,finalCalendarcal2,finalintfield)/***截取比较两个日期对象的field处的值是否相同。**@paramdate1第一个日期对象,非null*@paramdate2第二个日期对象,非null*@paramfieldCalendar中的阈值*/publicstaticbooleantruncatedEquals(finalDatedate1,finalDatedate2,finalintfield)/***截取比较两个日历对象的field处的值。*如果第一个日历小于、等于、大于第二个,则对应返回负整数、0、正整数**@paramcal1第一个日历对象,非null*@paramcal2第二个日历对象,非null*@paramfieldCalendar中的阈值*/publicstaticinttruncatedCompareTo(finalCalendarcal1,finalCalendarcal2,finalintfield)/***截取比较断两个日期对象的field处的值。*如果第一个日期小于、等于、大于第二个,则对应返回负整数、0、正整数**@paramdate1第一个日期对象,非null*@paramdate2第二个日期对象,非null*@paramfieldCalendar中的阈值*/publicstaticinttruncatedCompareTo(finalDatedate1,finalDatedate2,finalintfield)//简单举例System.out.println(DateUtils.addDays(newDate(),1));//-----------------当前日期。天数加1如果想建议填负数即可System.out.println(DateUtils.addHours(newDate(),0));//----------------当前日期Datedate=DateUtils.addDays(newDate(),1);
DateUtils返回的就是Date不需要转换,当然也是很早的东西了,只是诞生在Calender基础之上而已
三、JDK1.8新增的日期API LocalDate | LocalTime | LocalDateTime新的日期API都是不可变的,更使用于多线程的使用环境中(从默认时区的系统时钟获取当前的日期时间。不用考虑时区差)
优点:
1、之前使用的java.util.Date月份从0开始,我们一般会+1使用,很不方便,java.time.LocalDate月份和星期都改成了enum
2、java.util.Date和SimpleDateFormat都不是线程安全的,而LocalDate和LocalTime和最基本的String一样,是不变类型,不但线程安全,而且不能修改。
3、java.util.Date是一个“万能接口”,它包含日期、时间,还有毫秒数,更加明确需求取舍
4、新接口更好用的原因是考虑到了日期时间的操作,经常发生往前推或往后推几天的情况。用java.util.Date配合Calendar要写好多代码,而且一般的开发人员还不一定能写对。
(1)、LocalDateTime(年月日时分秒)
LocalDateTimedate=LocalDateTime.now();//2021-03-26T10:24:14.009784900System.out.println(date);//获取年月日时分秒操作System.out.println(date.getYear());System.out.println(date.getMonthValue());System.out.println(date.getDayOfMonth());System.out.println(date.getHour());System.out.println(date.getMinute());System.out.println(date.getSecond());System.out.println(date.getNano());//当然你也可以获取最近任意的一段时间System.out.println(date.getSecond()+1);||System.out.println(date.getSecond()-1);//手动创建一个LocalDateTime实例LocalDateTimedate2=LocalDateTime.of(2017,12,17,9,31,31,31);System.out.println(date2);//进行加操作,得到新的日期实例LocalDateTimedate3=date2.plusDays(12);System.out.println(date3);//进行减操作,得到新的日期实例LocalDateTimedate4=date3.minusYears(2);System.out.println(date4);isAfter()判断一个日期是否在指定日期之后返回boolean类型System.out.println(localDateTime.isBefore(LocalDateTime.now()));//---------返回falseisBefore()判断一个日期是否在指定日期之前返回boolean类型System.out.println(localDateTime.isAfter(LocalDateTime.now()));//---------返回falseisLeapYear()判断是否是闰年(这个是LocalDate类中的方法)返回boolean类型System.out.println(localDateTime.isEqual(LocalDateTime.now()));//---------返回true
(2)、LocalDateTime与Date之间的转换
Date to LocalDateTime
DatetodayDate=newDate();LocalDateTimeldt=Instant.ofEpochMilli(todayDate.getTime()).atZone(ZoneId.systemDefault()).toLocalDateTime();System.out.println(ldt);
LocalDateTime to Date
LocalDateTimelocalDateTime=LocalDateTime.now();Datedate=Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());System.out.println(date);
当然还有很多好玩的东西,LocalDate(年月日) LocalTime(时分秒)和LocalDateTime(年月日时分秒)都大差不差,所以讲一个即可
四、Hutool(Java工具类库)一个比较好玩的Java工具类库,包含很多好玩的工具类,简单便捷。
(1)、安装
Maven
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.6.1</version></dependency>
Gradle
compile'cn.hutool:hutool-all:5.6.1'
Maven中央仓库
Hutool 5.x支持JDK8+,对Android平台没有测试,不能保证所有工具类或工具方法可用。 如果你的项目使用JDK7,请使用Hutool 4.x版本
(2)、使用
//该工具类时间都是格式化好的System.out.println(DateUtil.now());//------------------------------取当前时间这也没啥好说的下载源码看中文注释即可,就不一一举例了,,,简简单单。
读到这里,这篇“Java实现时间日期的方法有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。