问题标签 [java-time]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10662 浏览

java - java 8 - ZonedDateTime 不等于另一个 ZonedDateTime

我创建了两个 ZonedDateTime 对象,我认为它们应该相等:

在调试器中,我看到 ZonedDateTime区域的成员类在第一种情况下是java.time.ZoneOffset,在第二种情况下是 java.time.ZoneRegion ,这使得 ZonedDateTime 对象不相等。这令人困惑......有什么想法吗?

0 投票
2 回答
6721 浏览

java - 使用 Java 8 计算两个日期之间的天数,同时忽略一周中的某些天

下面我有3种方法。第一个非常简单。它只计算总天数。然而,第二个不仅会计算天数,还会忽略传递给该方法的星期几。

我的问题是第三种方法并不总是正确的。它应该与第二种方法相匹配。我猜它与闰年有关,因为当它不正确时,差异通常是 +=3|4。

附加信息

我试图以weekday(serial_number,[return_type])某种方式模拟 Excel 的公式。

例子

这里有关于这个函数的更多信息:如何在 Excel 中计算/计算两个日期之间的天数?

原始图像

在此处输入图像描述

方法

  1. 只需计算两个日期之间的天数。

    /li>
  2. 使用循环计算天数,忽略一周中的某些天。

    /li>
  3. 计算天数。再次但没有循环。

    /li>

完整代码

0 投票
1 回答
1102 浏览

java - Java 8 - 我如何使用 xsd:duration 从现在计算(毫秒)秒

我觉得这个问题已经被以某种方式提出,但我仍然对我的结果没有信心。

我有一个 xsd:duration,它将给我一个以年、月、日和秒为单位的期望到期时间。duration.getYears()例如,我可以使用或收集这些部分的整数值duration.getMonths()

因为我选择的数据库是 Cassandra,所以我想利用 TTL 选项,它会在指定的秒数后自动使插入的行过期。

关键部分是从 xsd:duration 获取符合公历的整数/长秒值(从现在开始的 1 个月不仅仅是 30.41 天,而是 31 天)。

目前,我正在使用以下代码:

有没有更快/更清洁的方法来做到这一点?

我也不确定我是否应该担心较长的持续时间......我的特定用例不需要超过 2 年的时间。

0 投票
1 回答
216 浏览

java - Java 8 Date & Time API:如何获取给定月份的 ISO8601 周数?

现在我只计算从第一个日期到最后一个日期的星期四数。是否有使用 Java 8 日期和时间 API 的单线解决方案?我试过了:

但它给出的结果不正确,例如,对于 2014 年 5 月 5 日,它返回 5,而根据 ISO8601,3 月只有 4 周。

0 投票
5 回答
174420 浏览

java - 如何在 Java 8 中获取 UTC+0 日期?

Java 中的 Date 类有问题。日期类返回本地机器日期,但我需要 UTC-0。

我用谷歌搜索并找到了 JavaScript 的很好的解决方案,但对于 Java 没有任何用处。

如何在 Java 8 中获取 UTC+0 日期?

0 投票
2 回答
1897 浏览

java - 如何使用语言环境将三个数字解析为 LocalDate?

我正在尝试解析三个数字,例如[2, 10, 2014]使用LocalDate新的 Java 8 日期和时间 API。

一切听起来都相对容易,对吧?好吧,也许不是。
额外的限制是我需要考虑语言环境,例如荷兰语和美国语使用不同的日期格式。

我唯一的输入是三个数字和语言环境,输出应该是格式正确的日期,格式为LocalDate.

我认为我将需要以下步骤:

  1. 从 a 中获取一个Locale可以读取三个数字的转换器。
  2. 使用转换器,将三个数字转换为LocalDate.

我环顾四周,尤其是在DateTimeFormatter课堂上,但似乎希望明确传递日、月和年的格式,这对我来说不是一个选择。

如何在 a 中转换三个数字(以任意顺序表示日、月和年)LocalDate

例子

荷兰语格式:

美式格式:

还要记住,我说的是数字的概念,但它们需要表示为字符串,以适应使用其他 Unicode 字符而不是数字 0-9 作为数字的语言。

0 投票
1 回答
1899 浏览

java - LocalDate 和 DateTimeFormatter 在日语语言环境中无法正常工作

在测试我的某些方法时,我遇到了一个奇怪的问题,我似乎已经能够获得我的问题的具体示例。

我使用的ja_JP_JP_#u-ca-japanese语言环境无法使用由语言环境定义的自己的日期模式来解析日期。

我想知道我是否做错了什么,或者这是否是一个 JDK 错误。

请注意,为了构建ja_JP_JP_#u-ca-japanese,您需要按照 Locale javadoc 的new Locale("ja", "JP", "JP")摘录使用:

特别案例

出于兼容性原因,两个不符合的语言环境被视为特殊情况。它们是 ja_JP_JP 和 th_TH_TH。由于变体太短,这些在 BCP 47 中格式不正确。为了简化向 BCP 47 的迁移,在施工期间对这些进行了特殊处理。这两种情况(并且只有这两种情况)导致构造函数生成扩展,所有其他值的行为与 Java 7 之前完全相同。

Java 已使用 ja_JP_JP 来表示在日本使用的日语以及日本皇历。这现在可以使用 Unicode 语言环境扩展来表示,方法是指定 Unicode 语言环境键 ca(用于“日历”)并输入日语。当使用参数“ja”、“JP”、“JP”调用 Locale 构造函数时,会自动添加扩展名“u-ca-japanese”。

Java 使用 th_TH_TH 来表示泰国使用的泰语和泰语数字。这现在也可以使用 Unicode 区域设置扩展来表示,通过指定 Unicode 区域设置键 nu(用于“数字”)和值 thai。当使用参数“th”、“TH”、“TH”调用 Locale 构造函数时,会自动添加扩展名“u-nu-thai”。

演示问题的给定测试用例:

此代码适用于任何其他正常语言环境,例如英语等。

0 投票
5 回答
4523 浏览

java - Java 8 DateTime 检查时间段是否包含特定日期

我想检查一个日期期间是否包含 2 月 29 日。

我试过了:

但是beginDatematurity是从类型LocalDate 所以方法.isAfter.isBefore不能使用。

例子

beginDate是 15.01.2012
maturity是 20.01.2013

在此期间,2 月 29 日存在

解决方案

我终于找到了解决方案:

0 投票
7 回答
18944 浏览

java - 纪元年和周年的区别?

Java 8 的DateTimeFormatter类有一个方法 ,ofPattern(String pattern)可以让您从A-z,a-z字母的字符串中定义格式。这些示例没有阐明y, year-of-eraY, week-based-year之间的区别。它是什么?

0 投票
1 回答
213 浏览

java - 如何将日期截断/跨度到一个间隔?

我尝试使用 Instant.truncatedTo 截断日期,但似乎不允许截断超过一天的时间。我想要做的是使用特定的时间间隔截断日期。例如:

因此,它更像是将日期跨越到特定的时间间隔。

我实际上是在使用时间戳值来将它们除以时间戳间隔((dateTimestamp/intervalTimestamp)*intervalTimestamp),但是在使用月份时,没有固定的时间戳值,因为月份的天数可能会改变,因此它几个月都不起作用。