Java 8日期和时间时间字段

时间:2015-02-05 20:14:15

标签: java datetime java-8

我在Java 8日期和时间新API上导航,我无法继续前进,我无法在网络上找到任何好的资源,我希望你能对这个问题感兴趣。

我的简单源代码是

final LocalDate date = LocalDate.now();
date.get(TemporalField field)

我得到了源代码,我明白了。

public int get(TemporalField field)
  Gets the value of the specified field from this date as an int.

我的问题是我如何获得TemporalField,或者这是让这段代码工作的最简单方法..

final int value = date.get(????);

这要归功于JB Nizet

date.get(java.time.temporal.ChronoField.ALIGNED_DAY_OF_WEEK_IN_MONTH);

API。

http://docs.oracle.com/javase/8/docs/api/java/time/temporal/ChronoField.html

2 个答案:

答案 0 :(得分:9)

有多种方法可以获取TemporalField的实例。

首先,枚举ChronoField实现TemporalField并包含各种常量。

ChronoField.ALIGNED_WEEK_OF_YEAR;

其次,类IsoFieldsJulianFields包含静态TemporalField对象。

IsoFields.QUARTER_OF_YEAR;
JulianFields.JULIAN_DAY;

第三,类WeekFields包含基于WeekFields创建TemporalField个对象的静态TemporalField对象和方法。

WeekFields.WEEK_BASED_YEARS;
WeekFields.SUNDAY_START.weekOfMonth();

答案 1 :(得分:5)

TemporalField的Javadoc说,就在那里:

“最常用的单位在ChronoField中定义。其他字段在IsoFields,WeekFields和JulianFields中提供。字段也可以通过实现此接口由应用程序代码编写。”

从这些字段中选择您想要的内容。