什么是Java中的时态对象?

Omk*_*kar 7 java java-8

我在Java 8中进行探索TemporalQueryTemporalAccessor介绍TemporalAccessor似乎是专门为时间对象设计的,例如日期,时间,偏移或这些的某种组合.什么是时间对象?一些谷歌搜索给出了它的含义

随时间变化的对象

但是无法在Java的上下文中将其与此相关联?

Pau*_*gas 7

根据与乔达,时间和JSR 310,问题,概念和方法 [ PDF ],则TemporalAccessor:

定义对临时对象的只读访问权限,例如日期,时间,偏移量或这些的某种组合

JSR-310的日期和时间API指南指出:

Fields和单位与抽象一起工作Temporal,并TemporalAccessor提供一个访问的日期时间类的通用方式.

" Beginning Java 8 Fundamentals "一书:语言语法,数组,数据类型,对象和正则表达式说:

API中指定某种日期,时间或两者的所有类都是TemporalAccesor.LocalDate,LocalTime,LocalDateTime,和ZoneDateTime是一些例子TemporalAccesor.

接下来是一个示例代码(基于上一本书中的一些示例):

public static boolean isFriday13(TemporalAccessor ta) {
    if (ta.isSupported(DAY_OF_MONTH) && ta.isSupported(DAY_OF_WEEK)) {
        int dayOfMonth = ta.get(DAY_OF_MONTH);
        int weekDay = ta.get(DAY_OF_WEEK);
        DayOfWeek dayOfWeek = DayOfWeek.of(weekDay);
        if (dayOfMonth == 13 && dayOfWeek == FRIDAY) {
            return true;
        }
    }
    return false;
}

public static void main(String[] args) {
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
    TemporalAccessor ta = formatter.parse("02/13/2015");
    LocalDate ld = LocalDate.from(ta);
    System.out.println(ld);
    System.out.println(isFriday13(ld));
}
Run Code Online (Sandbox Code Playgroud)