Java中的时间日期类型

时间日期类型:java8之前: Date 类型(java.util包下的Date)

Date date = new Date();//Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒

Date date2 = new Date(23749287403090L);//Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。

date2.getTime()//long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。

date2.after(date)//boolean after(Date when) 测试此日期是否在指定日期之后。

date2.before(date)//boolean before(Date when) 测试此日期是否在指定日期之前。

//static Date from(Instant instant) 从 Instant对象获得 Date的实例。

//Instant toInstant() 将此 Date对象转换为 Instant 。

DateFormat类应该用于格式化和解析日期字符串

SimpleDateFormat是一个用于以区域设置敏感的方式格式化和解析日期的具体类。 它允许格式化(日期→文本),解析(文本→日期)和规范化。

SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS"); //SimpleDateFormat() 默认的转换格式

simple.format(date)//日期->文本

simple2.parse("2022-2-21 05:22:41 446")//文本→日期

java8新增时间日期API :Date,SimpleDateFormat 线程不安全的

JDK8当中提供的`LocalTime` 、` LocalDate` 、 `LocalDateTime`等类型,线程安全,使用简单灵活

Year.now()//今年--------------->Year.of(2022)//指定年

 Month.FEBRUARY//6月

LocalDate today = LocalDate.now();(LocalDate.of(2021,11,21))//今天不包含时分秒

LocalDate yourBirthDate = LocalDate.of(1999, Month.JUNE, 15);//您的生日

LocalTime time = LocalTime.now();LocalTime time2 = LocalTime.of(11,11,11);)//时分秒

LocalDateTime now = LocalDateTime.now();(LocalDateTime ldt2 = LocalDateTime.of(2011,12,12,10,18,24);)//此时此刻 

getYear()/getMonth()/getDayOfMonth()/getDayOfWeek()//获取年月日

getHour()/getMinute()/getSecond() //获取时分秒

today.isEqual(LocalDate.of(2021,11,21))/LocalDate.of(2020,1,1).isLeapYear()//判断//是否为闰年

LocalDate.of(2020,2,28).minusYears(1)/today.plusYears(1)//+-

now.withYear(2028)//设置

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");//日期与文本转换问题//日期转换器

LocalDateTime now1 = LocalDateTime.now();//格式化日期字符串

String nowStr = now1.format(formatter);  //放入格式器

LocalDateTime date= LocalDateTime.parse(dateStr, formatter);//放入格式器//转成日期

date.getDayOfMonth()//获取日

LocalDate today1 = LocalDate.now();(LocalDate birthDate = LocalDate.of(1999, 3, 15);)//间隔

Period p = Period.between(birthDate, today1);/(System.out.println(p.getYears()+"年"+p.getMonths()+"月"+p.getDays()+"日");)//时期间隔 年月日
        

long between = ChronoUnit.YEARS.between(startDate, endDate)/

System.out.println("两年之间的差   : " + between); //0 不是1不满一年不计算在内//期量单位 间隔

Java中的时间日期类型_第1张图片

 

public class Class001_Date {
    public static void main(String[] args) {
        //Date() 分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
        Date date = new Date();
        System.out.println(date);

        //Date(long date) 分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。
        Date date2 = new Date(23749287403090L);
        System.out.println(date2);

        //long getTime() 返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
        System.out.println(date2.getTime());

        //boolean after(Date when) 测试此日期是否在指定日期之后。
        System.out.println(date2.after(date));  //true
        //boolean before(Date when) 测试此日期是否在指定日期之前。
        System.out.println(date2.before(date));  //false

        //static Date from(Instant instant) 从 Instant对象获得 Date的实例。
        //Instant toInstant() 将此 Date对象转换为 Instant 。
    }
}

 

public class Class002_DateFormat {
    public static void main(String[] args) throws ParseException {
        Date date = new Date();
        //SimpleDateFormat() 默认的转换格式
        SimpleDateFormat simple = new SimpleDateFormat();  //2021/12/21 下午5:18
        SimpleDateFormat simple2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss SSS");  //指定默认格式
        //日期->文本
        System.out.println(simple.format(date));;
        System.out.println(simple2.format(date));;

        //文本→日期
        System.out.println(simple2.parse("2022-2-21 05:22:41 446"));

    }
}

public class Class003_DateTime {
    public static void main(String[] args){
        //今年
        System.out.println("今年"+Year.now());
        System.out.println("指定年" + Year.of(2022));
        //6月
        System.out.println("月份:"+ Month.FEBRUARY);
        //今天不包含时分秒
        LocalDate today = LocalDate.now();
        System.out.println("今天:"+today);
        System.out.println(LocalDate.of(2021,11,21));;
        //您的生日
        LocalDate yourBirthDate = LocalDate.of(1999, Month.JUNE, 15);
        System.out.println("生日:"+yourBirthDate);

        //时分秒
        LocalTime time = LocalTime.now();
        System.out.println(time);
        LocalTime time2 = LocalTime.of(11,11,11);
        System.out.println(time2);

        //此时此刻
        LocalDateTime now = LocalDateTime.now();
        System.out.println("现在:"+now);

        LocalDateTime ldt1 = LocalDateTime.of(yourBirthDate,time);
        LocalDateTime ldt2 = LocalDateTime.of(2011,12,12,10,18,24);
        System.out.println(ldt2);

        //获取年月日
        System.out.println(today.getYear());
        System.out.println(today.getMonth());
        System.out.println(today.getDayOfMonth());
        System.out.println(today.getDayOfWeek());

        //获取时分秒
        System.out.println(time.getHour());
        System.out.println(time.getMinute());
        System.out.println(time.getSecond());

        System.out.println(now.getYear());
        System.out.println(now.getMonth());

        //判断
        System.out.println(today.isEqual(LocalDate.of(2021,11,21)));
        System.out.println(LocalDate.of(2020,1,1).isLeapYear());  //是否为闰年

        //+-
        System.out.println(LocalDate.of(2020,2,28).minusYears(1));
        System.out.println(today.plusYears(1));

        //设置
        System.out.println(now.withYear(2028));

        //日期与文本转换问题
        //日期转换器
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        //格式化日期字符串
        LocalDateTime now1 = LocalDateTime.now();
        String nowStr = now1.format(formatter);  //放入格式器
        System.out.println(nowStr);

        String dateStr= "2020-02-25 11:23:04";
        //转成日期
        LocalDateTime date= LocalDateTime.parse(dateStr, formatter);//放入格式器
        //获取日
        System.out.println(date.getDayOfMonth());

        //间隔
        LocalDate today1 = LocalDate.now();
        LocalDate birthDate = LocalDate.of(1999, 3, 15);
        //时期间隔 年月日
        Period p = Period.between(birthDate, today1);
        System.out.println(p.getYears()+"年"+p.getMonths()+"月"+p.getDays()+"日");


        LocalDate startDate = LocalDate.of(1993, 8, 19);
        LocalDate endDate = LocalDate.of(1994, 12,16);
        //期量单位 间隔
        long between = ChronoUnit.YEARS.between(startDate, endDate);
        System.out.println("两年之间的差   : " + between); //0 不是1不满一年不计算在内

        long between2 = ChronoUnit.MONTHS.between(startDate, endDate);
        System.out.println("两年之间的差   : " + between2); //15
    }
}
 

你可能感兴趣的:(java,开发语言)