当前位置: 首页 > 知识库问答 >
问题:

当使用threeten-extra解析一年季度时,是否可以拒绝多个季度数字?

郑旭
2023-03-14

我使用ThreeTen-Extra库中的YearQuarter来表示给定年份中的特定季度。

我使用自定义格式而非默认格式,例如2018年第三季度使用“3Q2018”而非“2018-Q3”。当通过YearQuarter.parse(文本,格式化程序)解析值时,我希望拒绝该季度前导零的值(通过标准的DateTimeParseException)。

YearMonth.parse("012-2018", DateTimeFormatter.ofPattern("M-yyyy"))
LocalTime.parse("001:00:01", DateTimeFormatter.ofPattern("H:mm:ss"))
LocalTime.parse("01:00:012", DateTimeFormatter.ofPattern("HH:mm:s"))

但是,它们拒绝使用DateTimeParseException的输入:

YearMonth.parse("012-2018", DateTimeFormatter.ofPattern("MM-yyyy"))
LocalTime.parse("001:00:01", DateTimeFormatter.ofPattern("HH:mm:ss"))
LocalTime.parse("01:00:012", DateTimeFormatter.ofPattern("HH:mm:ss"))

如何构造DateTimeFormatter以所需格式解析YearQuarter,同时拒绝该季度中超过一位数的值?理想情况下,我希望将其作为模式字符串来完成,因为这些模式字符串对人类来说更容易阅读,并且更容易具体化为文本属性。

共有1个答案

杨学真
2023-03-14

我还没有发现将此作为模式字符串的方法,但以下内容将以编程方式构造一个DateTimeFormatter,使用所需的格式,拒绝使用0填充的四分位数:

import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.time.temporal.IsoFields;

[...]

new DateTimeFormatterBuilder()
    .appendValue(IsoFields.QUARTER_OF_YEAR, 1)
    .appendLiteral('Q')
    .appendValue(ChronoField.YEAR, 4)
    .toFormatter();
 类似资料:
  • 问题内容: 当然,我可以自己写这个,但是在我重新发明轮子之前,已经有一个已经做到这一点的功能了吗? 问题答案: 给定一个实例的datetime.date,会给你的四分之一(0第一季度,1第二季度,等等-加1,如果你需要从1计数,而不是;-)。 最初有两个答案,乘以赞成票,甚至最初被接受(目前都已删除),但存在很多问题-除法之前不进行除法,而是除以4而不是3。从1到12,可以很容易地检查一下自己的公

  • 问题内容: 我正在尝试构造一个查询,该查询将映射两列,一列是表中的日期,第二列是别名,以显示日期所属的季度和财务年度。 不幸的是,我没有足够的SQL知识来知道从哪里开始。我知道,我会用的组合做到这一点,并却没有,我已经把已接近工作。 更复杂的是,澳大利亚的财政年度从7月1日至6月30日开始,因此2012财政年度的第一季度将从2012年7月1日开始。 我可以不用声明就可以做到这一点,但是我宁愿在声明

  • 因此,我有2020年第一季度至2021第四季度迪士尼加收入的季度数据。 错误-

  • 问题内容: 给定2个日期(StartDate和EndDate),我该如何在Pl / SQL中生成季度周期。 例子: 预期产量: 问题答案: 参数规则,您可能需要调整查询以适合您的目的: 如果start_date不是确切的季度开始日期,则它有效地使用季度包含开始日期。 如果end_date不是确切的季度末,那么我们将在end_date之前的那个季度结束(而不是包含结束日期的那个季度)。

  • 问题内容: 计算上一季度最后一天的最有效方法是什么? 示例:给定日期11/19/2008,我想返回9/30/2008。 平台是SQL Server 问题答案: 如果@Date有日期问题 编辑:感谢下面的@strEagle,更简单的是:

  • 本文向大家介绍C#巧用DateTime预设可选的日期范围(如本年度、本季度、本月等),包括了C#巧用DateTime预设可选的日期范围(如本年度、本季度、本月等)的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C# DateTime预设可选的日期范围的相关代码,可以选择本年度、本季度、本月等,供大家参考,具体内容如下 效果: 大家在做报表或查询的时候都会有给用户预设一些可选的日期范围