Java中常见的表示时间的类的一些问题
在java中一般表示时间的方法有Date和Calendar
其方法如下:
但是用这些方法存在一些缺陷,就是表示和设定很复杂,反人类。
例如:
Calendar调用get(Calendar.DAY_OF_WEEK)
其返回值1代表星期日、2代表星期一、3代表星期二,以此类推
Date调用getDay()
其返回值0代表星期日、1代表星期一、2代表星期二,以此类推
这并不符合我们一般的认知(即1-7分别表示周一到周日)。
此外还存在不格式化,其打印结果可读性差的问题。
LocalDate类
其基本方法如下:
根据格式与String的相互转化:
LocalDate to String
LocalDate test = LocalDate.now();
DateTimeFormatter D2Sfmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String str = test.format(D2Sfmt);
String to LocalDate
String str = "2021-06-24";
DateTimeFormatter S2Dfmt = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDate test = LocalDate.parse(str,S2Dfmt);
根据上述的方法,我们可以很好的设计软件构造lab3中与日期相关的属性。
利用LocalDate类来实现Lab3可以很好的解决实验中的问题。