日期的使用(二)

JDK8 之后的日期,时间

LocalDate, LocalTime, LocalDateTime

它们获取对象方案
public static Xxxx now(): 获取系统当前时间对应的对象
public static Xxx of(…): 获取指定时间的对象

  • LocalDate代表 年月日星期
  • LocalTime代表 时分秒纳秒
  • LocalDateTime代表 月日星期,时分秒纳秒

它们常用的一些方法(with~, minus~, plus~):

package date_use_new;

import java.time.LocalDate;

public class Test1_LocalDate {
    public static void main(String[] args) {
        //0,获取本地日期对象(不可变对象)
        LocalDate ld = LocalDate.now();//年 月 日
        System.out.println(ld);

        //1.获取日期对象中的信息
        int year = ld.getYear();// 年
        int month = ld.getMonthValue();// 月(1——12)
        int day = ld.getDayOfMonth();// 日
        int dayOfYear = ld.getDayOfYear();// 一年中的第几天
        System.out.println(year);
        System.out.println(day);
        System.out.println(dayOfYear);

        //2.直接修改某个信息:withYear,withMonth,withDayOfMonth
        LocalDate ld2 = ld.withYear(2099);
        LocalDate ld3 = ld.withMonth(12);
        System.out.println(ld2);
        System.out.println(ld3);
        System.out.println(ld);

        //3.把某个信息加多少:plusYears,plusMonths,plusDays,plusWeeks
        LocalDate ld4 = ld.plusYears(2);
        LocalDate ld5 = ld.plusMonths(2);

        //4.把某个信息减多少:minusYears,minusMonths,minusDays,minusWeeks
        LocalDate ld6 = ld.minusYears(2);
        LocalDate ld7 = ld.minusMonths(2);
        System.out.println(ld7);

        //5.获取指定日期的LocalDate对象:
        LocalDate ld8 = LocalDate.of(2099, 12, 12);
        LocalDate ld9 = LocalDate.of(2099, 12, 12);

        //6.判断两个日期对象是否相等,是在前还是在后:equals,isBefore,isAfter
        System.out.println(ld8.equals(ld9));//true
        System.out.println(ld8.isAfter(ld));//true
        System.out.println(ld8.isBefore(ld));//false

        //可以把LocalDateTime转换成LocalDate(年,月,日,星期)和LocalTime(时分秒纳秒)
        // public LocalDate toLocalDate()
        // public LocalDate toLocalDate()
        // public static LocalDateTime of(LocalDate date,LocalTime date)
        // -------三者之间方法类似,with~,plus~,minus~-----------
        /*
        LocalDate ld = ldt.toLocalDate();
        LocalDate lt = ldt.toLocalTime();
        LocalDateTime ldt10 = LocalDateTime.of(ld,lt)
       * */

    }
}

ZoneId, ZoneDateTime

ZoneDateTime 带时区时间的常见方法

方法名说明
public ZoneDateTime withXxx(时间)修改时间系列的方法
public ZoneDateTime minusXxx(时间)减少时间系列的方法
public ZoneDateTime plusXxx(时间)增加时间系列的方法

它们常用的一些方法:

package date_use_new;

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标:了解时区和带时区的时间
        // 1.ZoneId的常见方法
        // public static ZoneId systemDefault(): 获取系统默认的时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println(zoneId.getId());
        System.out.println(zoneId);

        //public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
        System.out.println(ZoneId.getAvailableZoneIds());

        // public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象
        ZoneId zoneId1 = ZoneId.of("America/New_York");

        //2. ZoneDateTime: 带时区的时间
        // public static ZoneDateTime now ( ZoneId zone) : 获取某个时区的ZoneDateTime对象
        ZonedDateTime now = ZonedDateTime.now(zoneId1);
        System.out.println(now);

        // 世界标准时间
        ZonedDateTime now1 = ZonedDateTime.now(Clock.systemUTC());
        System.out.println(now1);

        // public static ZoneDateTime now() : 获取系统默认时区的ZoneDateTime对象
        ZonedDateTime now2 = ZonedDateTime.now();
        System.out.println(now2);

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值