前言:
现在咱们对“java日期秒”大体比较着重,小伙伴们都想要知道一些“java日期秒”的相关内容。那么小编也在网上搜集了一些对于“java日期秒””的相关资讯,希望咱们能喜欢,大家一起来学习一下吧!(一)使用 LocalDate、LocalTime、LocalDateTime
LocalDate、LocalTime、LocalDateTime 类的实例是不可变的对象,分别表示使用 ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。
方法
描述
now()
静态方法,根据当前时间创建对象
@Testpublic void demo1(){ LocalTime localTime = LocalTime.now(); System.out.println(localTime); System.out.println("================"); LocalDate localDate = LocalDate.now(); System.out.println(localDate); System.out.println("================"); LocalDateTime localDateTime = LocalDateTime.now(); System.out.println(localDateTime);}
of()
静态方法,根据指定日期/时间创建对象
@Testpublic void demo2(){ LocalTime localTime = LocalTime.of(1, 10, 30); System.out.println(localTime); System.out.println("================"); LocalDate localDate = LocalDate.of(2022,10,20); System.out.println(localDate); System.out.println("================"); LocalDateTime localDateTime = LocalDateTime.of(2022,10,20,10,10,10); System.out.println(localDateTime);}
plusDays, plusWeeks,
plusMonths, plusYears
向当前 LocalDate 对象添加几天、几周、几个月、几年
minusDays, minusWeeks,
minusMonths, minusYears
从当前 LocalDate 对象减去几天、 几周、几个月、几年
plus, minus
添加或减少一个 Duration 或 Period
@Testpublic void demo3(){ LocalDateTime now = LocalDateTime.now(); now = now.plusDays(3).minusMonths(1); System.out.println(now);}
withDayOfMonth,
withDayOfYear,
withMonth,
将月份天数、年份天数、月份、年份修改为指定的值并返回新 LocalDate 对象
@Testpublic void demo4(){ LocalDateTime now = LocalDateTime.now(); LocalDateTime localDateTime = now.withDayOfMonth(10).withHour(16); System.out.println(localDateTime);}
getDayOfMonth
获得月份天数(1-31)
getDayOfYear
获得年份天数(1-366)
getDayOfWeek
获得星期几(返回一个 DayOfWeek枚举值)
getMonth
获得月份, 返回一个 Month 枚举值
getMonthValue
获得月份(1-12)
getYear
获得年份
@Testpublic void demo5(){ LocalDateTime now = LocalDateTime.now(); System.out.println("天"+now.getDayOfMonth()); System.out.println("星期"+now.getDayOfWeek()); System.out.println("一年的多少天"+now.getDayOfYear()); System.out.println("月"+now.getMonthValue()); System.out.println("年"+now.getYear()); System.out.println("月(英文)"+now.getMonth()); System.out.println("时"+now.getHour()); System.out.println("分"+now.getMinute()); System.out.println("秒"+now.getSecond());}
until
获得两个日期之间的 Period 对象,或者指定 ChronoUnits 的数字
isBefore, isAfter
比较两个 LocalDate
isLeapYear
判断是否是闰年
@Testpublic void demo6(){ /* until 获得两个日期之间的 Period 对象,或者指定 ChronoUnits 的数字 isBefore, isAfter 比较两个 LocalDate isLeapYear 判断是否是闰年 */ LocalDateTime now = LocalDateTime.now(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } LocalDateTime now1= LocalDateTime.now(); boolean before = now.isAfter(now1); System.out.println(before); LocalDate date = LocalDate.now(); boolean leapYear = date.isLeapYear(); System.out.println(leapYear);}(二)Instant 时间戳
l 用于“时间戳”的运算。它是以Unix元年(传统的设定为UTC时区1970年1月1日午夜时分)开始所经历的描述进行运算
@Testpublic void demo7(){ Instant now = Instant.now(); //设置时区 OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8)); System.out.println(offsetDateTime); int nano = now.getNano(); System.out.println(nano); //获取毫秒值 long l = now.toEpochMilli(); System.out.println(l);}(三)Duration 和 Period
Duration:用于计算两个“时间”间隔
Period:用于计算两个“日期”间隔
@Testpublic void demo8(){ /** * Duration:用于计算两个“时间”间隔 * l Period:用于计算两个“日期”间隔 */ LocalTime now = LocalTime.now(); try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } LocalTime now1 = LocalTime.now(); Duration between = Duration.between(now, now1); System.out.println(between); System.out.println(between.getSeconds());}(四)日期的操纵
TemporalAdjuster : 时间校正器。有时我们可能需要获取例如:将日期调整到“下个周日”等操作。
TemporalAdjusters : 该类通过静态方法提供了大量的常用 TemporalAdjuster 的实现。
@Test public void demo9(){ LocalDateTime now = LocalDateTime.now(); DayOfWeek dayOfWeek = now.getDayOfWeek(); System.out.println(dayOfWeek); //修改为这个月最后一天 // LocalDateTime with = now.with(TemporalAdjusters.lastDayOfMonth()); //修改为下周 // LocalDateTime with = now.with(TemporalAdjusters.next(dayOfWeek)); //修改为这个月第一天 // LocalDateTime with = now.with(TemporalAdjusters.firstDayOfMonth()); //修改为下个月第一天 LocalDateTime with = now.with(TemporalAdjusters.firstDayOfNextMonth()); System.out.println(with); }(五)解析与格式化
java.time.format.DateTimeFormatter 类:该类提供了三种格式化方法:
预定义的标准格式
语言环境相关的格式
自定义的格式
@Testpublic void demo10(){ DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss E"); String format = dateTimeFormatter.format(LocalDateTime.now()); System.out.println(format); LocalDateTime parse = LocalDateTime.now().parse(format, dateTimeFormatter); System.out.println(parse);}(六)时区的处理
l Java8 中加入了对时区的支持,带时区的时间为分别为: ZonedDate、ZonedTime、ZonedDateTime 其中每个时区都对应着 ID,地区ID都为 “{区域}/{城市}”的格式。
例如 :Asia/Shanghai 等
ZoneId:该类中包含了所有的时区信息
getAvailableZoneIds() : 可以获取所有时区时区信息
of(id) : 用指定的时区信息获取 ZoneId 对象
@Testpublic void demo11(){ Set<String> availableZoneIds = ZoneId.getAvailableZoneIds(); availableZoneIds.forEach(System.out::println); LocalDateTime now = LocalDateTime.now(ZoneId.of("Asia/Shanghai")); System.out.println(now); //======================== LocalDateTime now1 = LocalDateTime.now(ZoneId.of("US/Pacific")); System.out.println(now1);}
结语:
授人以鱼不如授人以渔
标签: #java日期秒