Java 8日期和时间临时字段

9

我正在遍历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
看一下Javadoc:http://docs.oracle.com/javase/8/docs/api/java/time/temporal/TemporalField.html。在类型名称下面,它说:“所有已知的实现类:ChronoField”。 - JB Nizet
是的,但我需要一个运行的例子:( 因为我已经尝试了 date.get(ChronoField.???);,但似乎不起作用.... - chiperortiz
1
然后将您尝试的代码放入问题中,并明确定义“不起作用”的含义。 - JB Nizet
现在它可以工作了......抱歉,Java 8日期和时间是新的API,我还没有学习它,所以遇到了更多问题。抱歉。 - chiperortiz
2个回答

14

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

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

ChronoField.ALIGNED_WEEK_OF_YEAR;

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

IsoFields.QUARTER_OF_YEAR;
JulianFields.JULIAN_DAY;

第三,类WeekFields包含静态TemporalField对象和方法,用于基于周字段创建TemporalField对象。

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

我选择你的答案,因为它包含了重要、额外且非常好的信息... - chiperortiz

5

TemporalField的Javadoc中指出:

“最常用的单位在ChronoField中定义。更多的字段在IsoFields、WeekFields和JulianFields中提供。应用程序代码还可以通过实现此接口来编写字段。”

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接