java。time包是基于JodaTime库构建,是一种免费的开源组件,处理日期尽量使用该包下面相关类 importjava。time。; 该包下的所有类都是final修饰,所以所有的类对象不能通过new实例化,所以它是线程安全的,获取当前系统时间:publicstaticLocalDateTimenow(){ClockclockClock。systemDefaultZone();Objects。requireNonNull(clock,clock);finalInstantnowclock。instant();calledonceZoneOffsetoffsetclock。getZone()。getRules()。getOffset(now);Objects。requireNonNull(offset,offset);NANOOFSECOND。checkValidValue(nanoOfSecond);longlocalSecondepochSecondoffset。getTotalSeconds();overflowcaughtlaterlonglocalEpochDayMath。floorDiv(localSecond,SECONDSPERDAY);intsecsOfDay(int)Math。floorMod(localSecond,SECONDSPERDAY);LocalDatedateLocalDate。ofEpochDay(localEpochDay);LocalTimetimeLocalTime。ofNanoOfDay(secsOfDayNANOSPERSECONDnanoOfSecond);returnnewLocalDateTime(date,time);}2。1。LocalDate类 LoacalDate类是一个不可变的日期对象,表示格式年月日(YYYYMMDDHH:mm:ss。nas偏移量〔时区〕)日期类LocalDate:获取年月日log。debug(日期类:package:java。time。LocalDate);获取本地日期20210610LocalDateldLocalDate。now();log。debug(获取本地日期:{},ld);年份2021intyearld。getYear();月分Monthmonthld。getMonth();一年中的第几天intdayOfYearld。getDayOfYear();一年中的第几个月intdayOfMonthld。getDayOfMonth();一年中的第几周DayOfWeekdayOfWeekld。getDayOfWeek();log。debug(日期类:java。time。LocalDate:n年份:{},n月份:{}{},n当前时间一年中的第几天:{},n一年中的第几个月:{},n星期(?):{}{}n,year,month,month。getValue(),dayOfYear,dayOfMonth,dayOfWeek,dayOfWeek。getValue());日期类:java。time。LocalDate:当前日期:20210610,年份:2021,月份:JUNE6,当前时间一年中的第几天:161,一年中的第几个月:10,星期(?):THURSDAY42。2。LocalDateTime类 LoacalDateTime类是一个不可变的日期时间对象,表示格式年月日时分秒(YYYYMMDDHH:mm:ss)log。debug(日期时间类:java。time。LocalDateTime);获取本地当前时间20210610T22:12:58。250LocalDateTimeldtLocalDateTime。now();log。debug(日期时间类:{},ldt);年份intyear1ldt。getYear();月分Monthmonth1ldt。getMonth();一年中的第几天intdayOfYearTldt。getDayOfYear();一年中的第几个月intdayOfMonthTldt。getDayOfMonth();当前是周几DayOfWeekdayOfWeekTldt。getDayOfWeek();时inthourldt。getHour();分钟intminuteldt。getMinute();秒intsecondldt。getSecond();log。debug(日期类java。time。LocalDateTime:n当前日期:{},n年份:{},n月份:{}{},n当前时间一年中的第几天:{},n一年中的第几个月:{},n星期(?):{}{},n当前时间:{},n当前分钟:{},n当前秒:{}n,ldt,year1,month1,month1。getValue(),dayOfYearT,dayOfMonthT,dayOfWeekT,dayOfWeekT。getValue(),hour,minute,second);当前日期:20210610T22:40:00。060,年份:2021,月份:JUNE6,当前时间一年中的第几天:161,一年中的第几个月:10,星期(?):THURSDAY4,当前时间:22,当前分钟:40,当前秒:02。3。LoacalTime类 LoacalTime类是一个不可变的日期时间对象,代表一个时间,表示格式时分秒(HH:mm:ss)log。debug(时间类:java。time。LocalTime);LocalTimenowLocalTime。now();时间13:58:22。826LocalTimeofLocalTime。of(23,24,24);指定时间23:24:24LocalTimeptrLocalTime。parse(11:15:30);log。debug(nowofptr);log。debug(n当前时间:{},n指定时间:{},n解析时间字符串:{}n,now,of,ptr);当前时间:22:47:56。277,指定时间:23:24:24,解析时间字符串:11:15:302。4。Instant类 Instant类对时间轴上的单一瞬时点建模,可以作为时间戳,与System。currentTimeMillis()类似。但Instant可以精确到纳秒(NanoSecond)。 Instant除了可以使用now()方法创建,还可以通过ofEpochSecond方法创建。秒:单位s(second)60s1分钟毫秒:单位ms(milliseconds)1毫秒等于千分之一秒(1000ms1秒)微秒,单位s(英语:microsecond)。1微秒等于一百万分之一秒纳秒:单位ns(nanoseconds)一纳秒的10亿分之一秒理解一个关联概念,最近芯片工艺最新量产5nm,到底有多大?芯片工艺:1米(m)1000毫米(mm)1毫米(mm)1000微米(um)1微米(um)1000纳米(nm)1毫米,1000微米,1,000,000纳米。 跑题了,说回正题,一纳秒能干什么也(十亿分之一秒),光在真空中一纳秒仅传播30厘米(不足一个步长)。个人电脑的微处理器执行一道指令(如将两数相加)约需2至4纳秒longcMillisSystem。currentTimeMillis();log。debug(当前时间:{}milliseconds(毫秒),cMillis);从系统时钟获取当前时刻InstantnowInstant。now();log。debug(当前时间:{}nanoseconds(纳秒),now);获取当前时候秒后面的纳秒值intnanonow。getNano();log。debug(当前时间的纳秒值:{},nano);手动指定纳秒值100InstantinstantInstant。ofEpochSecond(3652460,100);log。debug(手动设定Instant值:{},instant);当前时间:1623339373763milliseconds(毫秒)当前时间:20210610T15:36:13。778Znanoseconds(纳秒)当前时间的纳秒值:778000000手动设定Instant值:19700107T02:00:00。000000100Z