Java中的时间日期类型

  • Post author:
  • Post category: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不满一年不计算在内

//期量单位 间隔


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

}

}



版权声明:本文为m0_67474817原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。