Java中日期类的使用
Java中和时间相关的类: Calendar 和 LocalDateTime
System
System.currentTimeMillis() : 返回相对于时间1970 01-01 00:00:00 的的所有毫秒数
Date 类
Date 的构造方法:
public Date(){
this(System.currentTimeMillis());
}
public Date(long currentTimeMillis){
this(currentTimeMillis);
}
DateFormat 和 SimpleDateFormat
//后者继承前者,所属包为:java.text 该包大部分是用作格式化
DateFormat 是抽象类,所以对于日期的格式化常常是使用:SimpledateFormate 进行
经常使用的方法:静态
格式构造形式:new SimpleFormat(String format);
public String format(Date date);
//使用特定格式解析
public Date parse(String string); 根据构造方法的格式进行解析字符串,返回Date 类,传入的字符串格式需要和构造方法的格式一致
可以使用的格式:
Calendar 类
一般是直接堆日期做加减,或者是直接获取日期中的某个具体的年 月 日 的时候比较常用
常用的属性:
YEAR MONTH WEEK_OP_YEAR ....
getInstance(); 获取一个实例 当前日期
get set 方法
对于月份标注是从 0 开始的需要特别注意一下
add(int num,int value);//设置方式注意 两个传入的参数类型都是int 类型
经常使用的操作:
Java8的日期特性 新的日期操作
java.time包里面的日期相关类
Instant:时间戳
Duration:持续时间,时间差
LocalDate:只包含日期,比如:2019-02-02
LocalTime:只包含时间,比如:23:12:10
LocalDateTime:包含日期和时间,比如:2019-02-02 23:14:21
Period:时间段
ZoneOffset:时区偏移量,比如:+8:00
ZonedDateTime:带时区的时间
Clock:时钟,比如获取目前美国纽约的时间
当前日期获取:
Localdate localdate = LocalDate.now();
//获取某个月份的第一天
LocalDate firstDay = localDate.with(TemporalAdjusters.firstDayOfMonth());
LocalDate firstDay = localDate.withDayOfMonth(1);
//最后一天
LocalDate lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth());
//日期加
LocalDate tomorrow = localDate.plusDays(1);
//闰年判断
boolean aa =localDate.isLeapYear();
//指定日期
LocalDate localDate =LocalDate.of(2019,01,01);
日期操作和比较:
LocalTime localTime =LocalTime.now();
获取当前时间不显示毫秒 10:13:14
LocalTime localTime1 =LocalTime.now().withNano(0);
//指定时间
LocalTime time =LocalTime.of(0,0,20);
LocalTime time1 =LocalTime.parse("10:20:20");
//当前时间+2h
LocalTime add =localTime.plus(1, ChronoUnit.HOURS);
LocalTime add1 =localTime.plusHours(1);
//日期前后比较
LocalDate today = LocalDate.now();
LocalDate specifyDate = LocalDate.of(2018, 12, 20);
System.out.println(today.isBefore(specifyDate)); //false
System.out.println(today.isAfter(specifyDate)); //true
Java8 新增加的日期类都是线程安全的,可以直接完成一些通用的任务,例如:加减 格式化 解析 从日期中单独提取出一部分等操作。
新的日期/时间 API 是工作在 ISO-8601 日历系统上的,但我们也可以将其应用在非 ISO的日历上
java.Time 上面常用的几个类:
LocalTime
LocalDate
LocalDateTime
instant
temporal
啊啊啊啊! 好多,慢慢写,感觉要写一下午了
java 8 ———— 包 java.time
所包含的类: