跳至主要內容

Java

LincZero大约 2 分钟

Java

目录

其他类型

Date类

deadline = new Date();

LocalDate类

API: java.time.LocalDate 8

时间是用距离一个固定时间点的毫秒数(可正可负)表示的,这个点就是所谓的纪元(epoch),它是UTC时间1970年1月1日00:00:00。UTC是Coordinated Universal Time的缩写,与大家熟悉的GMT(即Greenwich Mean Time,格林威治时间)一样,是一种具有实践意义的科学标准时间。

类库设计者决定将保存时间与给时间点命名分开。所以标准Java类库分别包含了两个类:一个是用来表示时间点的Date类;另一个是用来表示大家熟悉的日历表示法的LocalDate类

将时间与日历分开是一种很好的面向对象设计。通常,最好使用不同的类表示不同的概念。

LocalDate类封装了实例域来维护所设置的日期。如果不查看源代码,就不可能知道类内部的日期表示。

静态工厂方法(factory method)

不要使用构造器来构造LocalDate类的对象。实际上,应当使用静态工厂方法(factory method)代表你调用构造器。

LocalDate.now();						// 构造一个新对象,表示构造这个对象时的日期
LocalDate.of(1999,12,31);				// 可以提供年、月和日来构造对应一个特定日期的对象
int year = newYearsEve.getYear();		// 1999
int month = newYearsEve.getMonthValue();// 12
int day = newYearsEve.getDayMonth();	// 31

// 得到一个新的LocalDate,这个新日期对象则是距当前对象指定天数的一个新日期
LocalDate aThousandDaysLater = newYearsEve.plusDays(1000);
year = aThousandDaysLater.getYear();		// 2002
month = aThousandDaysLater.getMonthValue();	// 09
day = aThousandDaysLater.getDayOfMonth();	// 26

// Date类还有getDay、getMonth以及getYear等方法,然而并不推荐使用这些方法。当类库设计者意识到某个方法不应该存在时,就把它标记为不鼓励使用。

显示当前月的日历

[此略],查书