Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的时态对象是什么?_Java_Java 8 - Fatal编程技术网

Java中的时态对象是什么?

Java中的时态对象是什么?,java,java-8,Java,Java 8,我正在探索并介绍Java8TemporalAccessor似乎是专门为日期、时间、偏移量或它们的某种组合等时态对象设计的。什么是时间对象? 一些谷歌给出了它的含义 随时间变化的对象 但无法将其与Java环境联系起来?根据Joda Time&JSR 310,《问题、概念和方法》,临时助理: 定义对时间对象的只读访问, 例如日期、时间、偏移量或某些组合 其中 各国: 字段和单元与抽象Temporal和TemporalAccessor一起工作,以通用方式提供对日期时间类的访问 书上说: API中指定某

我正在探索并介绍Java8
TemporalAccessor
似乎是专门为日期、时间、偏移量或它们的某种组合等时态对象设计的。什么是时间对象? 一些谷歌给出了它的含义

随时间变化的对象

但无法将其与Java环境联系起来?

根据Joda Time&JSR 310,《问题、概念和方法》,
临时助理

定义对时间对象的只读访问, 例如日期、时间、偏移量或某些组合 其中

各国:

字段和单元与抽象
Temporal
TemporalAccessor
一起工作,以通用方式提供对日期时间类的访问

书上说:

API中指定某种日期、时间或两者的所有类都是
temporalAccessor
LocalDate
LocalTime
LocalDateTime
ZoneDateTime
TemporalAccessor
的一些示例

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


时间对象基本上是具有不同相关值的对象,例如“月的最后一天”或“下周三”“日期对象上下文中的etc。在Java8中,这些函数被建模为调整基准日期时间的函数。这些函数实现了TemporalAdjuster,并在时态上运行。例如,要查找给定日期后一周中某一天的第一个事件,请使用临时调整器.next(DayOfWeek),例如date.with(next(MONDAY))

虽然不是特定于语言,但这可能有助于您理解这个概念:时间只是指“与时间相关的”。time对象(就像它们的joda time对应对象)是不可变的,所以不要更改。在@Luke Peterson共享的链接中,时间对象是具有版本和连续性的东西。在这里,单个日期对象可以被视为时间对象,因为我们可以有许多相对值。例如,下周一,下个月的第一天等。这些相对值可以是版本,单个日期对象表示连续性。谢谢Paul。在宏观层面上,我可以看到TemporalAccessor作用于通用字段和时间对象的单位。我认为,在这方面我还有更多的需要探索。:)
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));
}