日期类

日期时间因为其时刻唯一性,经常被用作唯一标识。在java中存储的时间是一个长整型的数字。0代表的是1970年1月1日0时0分0秒。因为我们位于东八区,所以我们的时刻要加上8个小时,0代表的是1970年一月一日8时0分0秒。往前时负数,往后是整数。以毫秒计。

日期常用类

1、System(系统类)
2、Date(日期类)
3、SimpleDateFormat(日期格式类)

1、System类

  • public static native long currentTimeMillis();
系统类中,有个currentTimeMillis()方法,用来返回当前时间。返回long类型。可以用来做为程序
 效率的计算。

2、Date类
构造器

  • Date();
无参构造器,创建代表当前时间的日期类。
  • Date(long time)
传入一个long类型的整数,作为指定的时间,按自己所处时区0时刻开始算,到传入的整数的距离。
 作为时间对象。
Date dt2 = new Date(0l);
System.out.println(dt2); //Thu Jan 01 08:00:00 CST 1970

常用方法

  • public long getTime()
返回对象的时间。是一个长整型的数字。
  • public void setTime(long time)
设置(修改)时间

3、SimpleDateFormat类
构造器
SimpleDateFormat()

不传值代表默认,格式为 yy-MM-dd hh:mm:ss  12小时制。

传字符串代表格式化的格式。如“yyyy-MM-dd HH:mm:ss”。在格式化中分隔符除了英文字母外的其他字符
y代表年,M代表月,d代表日,H代表小时,m代表分,s代表秒。如果使用了其他字母,会报
java.lang.IllegalArgumentException异常
Date dt2 = new Date(0l);
SimpleDateFormat sd = new SimpleDateFormat();
System.out.println(sd.format(dt2));//70-1-1 上午8:00

常用的模板

java时间类型定义 java的时间日期类型_字符串

使用方式

  • 字符串转日期
先构造格式化对象,SimpleDateFormat,然后使用其parse方法。传入和模板类似的时间格式
  public Date parse(String source)
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 Date dt =  sd.parse("2017-12-2 8:8:8"); //获取到时间对象
  • 日期转字符串
同样先传入格式化的模板,然后使用format方法,传入日期类。
 public final String format(Date date) 返回格式化后的字符串。美观易懂
Date dt2 = new Date(0l);
 SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 String str = sd.format(dt2);

JDK8中为了方便我们使用还加了特殊的日期类。
这里简单做介绍

  • Year 类中 now() 方法用来获取当前年份
  • Month类中 定义了月份的枚举 如Month.JANUARY -一月
  • LocalDate类
now():返回不包含时分秒的本地时区的当前时间
  of(年,月,日,时,分,秒);构建本时区的时间。
  format();格式化时间成字符串 。需要传入一个日期格式转换器。DateTimeFormatter
  parse();转换为时间。 传入需要转的字符和一个日期格式化转换器。DateTimeFormatter
  • DateTimeFormatter类
ofPattern(模板); 传入时间格式化的模板。如yyyy-MM-dd HH:mm:ss,一般和LocalDate一起使用。

例如

DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String dtStr= "2020-02-25 11:23:04"; 
LocalDate dt = LocalDate.parse(dtStr,df);
  • Period类
between();用来计算两个日期之间的间隔
LocalDate ld1 = LocalDate.of(2017, 7, 15);
		LocalDate ld2 = LocalDate.of(2015, 6, 13);
		System.out.println(Period.between(ld1, ld2));

java时间类型定义 java的时间日期类型_System_02