问题标签 [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.
java - java 8 - ZonedDateTime 不等于另一个 ZonedDateTime
我创建了两个 ZonedDateTime 对象,我认为它们应该相等:
在调试器中,我看到 ZonedDateTime区域的成员类在第一种情况下是java.time.ZoneOffset,在第二种情况下是 java.time.ZoneRegion ,这使得 ZonedDateTime 对象不相等。这令人困惑......有什么想法吗?
java - 使用 Java 8 计算两个日期之间的天数,同时忽略一周中的某些天
下面我有3种方法。第一个非常简单。它只计算总天数。然而,第二个不仅会计算天数,还会忽略传递给该方法的星期几。
我的问题是第三种方法并不总是正确的。它应该与第二种方法相匹配。我猜它与闰年有关,因为当它不正确时,差异通常是 +=3|4。
附加信息
我试图以weekday(serial_number,[return_type])
某种方式模拟 Excel 的公式。
例子
这里有关于这个函数的更多信息:如何在 Excel 中计算/计算两个日期之间的天数?
原始图像
方法
只需计算两个日期之间的天数。
/li>使用循环计算天数,忽略一周中的某些天。
/li>计算天数。再次但没有循环。
/li>
完整代码
java - Java 8 - 我如何使用 xsd:duration 从现在计算(毫秒)秒
我觉得这个问题已经被以某种方式提出,但我仍然对我的结果没有信心。
我有一个 xsd:duration,它将给我一个以年、月、日和秒为单位的期望到期时间。duration.getYears()
例如,我可以使用或收集这些部分的整数值duration.getMonths()
。
因为我选择的数据库是 Cassandra,所以我想利用 TTL 选项,它会在指定的秒数后自动使插入的行过期。
关键部分是从 xsd:duration 获取符合公历的整数/长秒值(从现在开始的 1 个月不仅仅是 30.41 天,而是 31 天)。
目前,我正在使用以下代码:
有没有更快/更清洁的方法来做到这一点?
我也不确定我是否应该担心较长的持续时间......我的特定用例不需要超过 2 年的时间。
java - Java 8 Date & Time API:如何获取给定月份的 ISO8601 周数?
现在我只计算从第一个日期到最后一个日期的星期四数。是否有使用 Java 8 日期和时间 API 的单线解决方案?我试过了:
但它给出的结果不正确,例如,对于 2014 年 5 月 5 日,它返回 5,而根据 ISO8601,3 月只有 4 周。
java - 如何在 Java 8 中获取 UTC+0 日期?
Java 中的 Date 类有问题。日期类返回本地机器日期,但我需要 UTC-0。
我用谷歌搜索并找到了 JavaScript 的很好的解决方案,但对于 Java 没有任何用处。
如何在 Java 8 中获取 UTC+0 日期?
java - 如何使用语言环境将三个数字解析为 LocalDate?
我正在尝试解析三个数字,例如[2, 10, 2014]
使用LocalDate
新的 Java 8 日期和时间 API。
一切听起来都相对容易,对吧?好吧,也许不是。
额外的限制是我需要考虑语言环境,例如荷兰语和美国语使用不同的日期格式。
我唯一的输入是三个数字和语言环境,输出应该是格式正确的日期,格式为LocalDate
.
我认为我将需要以下步骤:
- 从 a 中获取一个
Locale
可以读取三个数字的转换器。 - 使用转换器,将三个数字转换为
LocalDate
.
我环顾四周,尤其是在DateTimeFormatter
课堂上,但似乎希望明确传递日、月和年的格式,这对我来说不是一个选择。
如何在 a 中转换三个数字(以任意顺序表示日、月和年)LocalDate
?
例子:
荷兰语格式:
美式格式:
还要记住,我说的是数字的概念,但它们需要表示为字符串,以适应使用其他 Unicode 字符而不是数字 0-9 作为数字的语言。
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”。
演示问题的给定测试用例:
此代码适用于任何其他正常语言环境,例如英语等。
java - Java 8 DateTime 检查时间段是否包含特定日期
我想检查一个日期期间是否包含 2 月 29 日。
我试过了:
但是beginDate
和maturity
是从类型LocalDate
所以方法.isAfter
和.isBefore
不能使用。
例子
beginDate
是 15.01.2012
maturity
是 20.01.2013
在此期间,2 月 29 日存在
解决方案
我终于找到了解决方案:
java - 纪元年和周年的区别?
Java 8 的DateTimeFormatter
类有一个方法 ,ofPattern(String pattern)
可以让您从A-z
,a-z
字母的字符串中定义格式。这些示例没有阐明y
, year-of-era和Y
, week-based-year之间的区别。它是什么?
java - 如何将日期截断/跨度到一个间隔?
我尝试使用 Instant.truncatedTo 截断日期,但似乎不允许截断超过一天的时间。我想要做的是使用特定的时间间隔截断日期。例如:
因此,它更像是将日期跨越到特定的时间间隔。
我实际上是在使用时间戳值来将它们除以时间戳间隔((dateTimestamp/intervalTimestamp)*intervalTimestamp),但是在使用月份时,没有固定的时间戳值,因为月份的天数可能会改变,因此它几个月都不起作用。