我正在处理不同年表之间的动态日期格式转换,例如将(民国年表中的)110/02转换为(ISO年表中的)2021或相反。日期和模式都是在运行时给出的。
时间顺序转换要求时间为完整日期,否则抛出异常:
DateTimeFormatter isoFmt = DateTimeFormatter.ofPattern("[y/]MM").withChronology(IsoChronology.INSTANCE);
DateTimeFormatter rocFmt = DateTimeFormatter.ofPattern("[y/]MM").withChronology(MinguoChronology.INSTANCE);
// same chronology, works without issue
rocFmt.parse("110/02").query(rocFmt::format);
isoFmt.parse("2021/02").query(isoFmt::format);
// different chronology, exception thrown
rocFmt.parse("110/02").query(isoFmt::format);
isoFmt.parse("2021/02").query(rocFmt::format);
DateTimeException:无法应用覆盖年表“Maguo”,因为正在格式化的时间对象包含日期字段但不代表整个日期
基于LocalDate(使用IsoChronology)的操作也失败:
rocFmt.parse("110/02").query(YearMonth::from);
rocFmt.parse("110/02").query(Month::from);
DateTimeException:无法从TemporalAccessor获取YearMonth
原因:DateTimeException:无法从TemporalAccessor获取LocalDate:
使用DateTimeFormatterBuilder,我可以为缺失的部分设置默认值,使其可解析。例如,02,2021
将由MM,yyyy
解析为2021/02/01,dayOfMonth默认为1,02-20,2021
将由MM dd,yyyy
解析为2021/02/20。
然而,第一天只是为了转换,我们不想要。为了确定是否应该保留这一部分,我正在寻找一种方法来确定解析的时态的精度或有效数字。
虽然我可以在转换之前检查dayOfMonth(d)字段是否存在,但也可以从dayOfYear(
d)或dayOfWeek(
E)中导出值,并提供额外的字段。
有什么方法可以确定精度或有效数字,这样我就可以防止有人将日期2021变为110/02/01?
顺便说一句,让我们把这个案子放到一边。
对不起,这是不可能的。
一方面,你的期望是相当合理的,因为中华民国/民国的日历系统使用与ISO相同的月份。两种历法的不同之处在于年份数字相差1911年。所以转换应该很简单。
另一方面,不同的日历系统通常有不同的月份,因此一个日历系统中的一个月不能明确地转换为另一个系统中的一个月。相反,这个月通常会与另一个系统中的两个不同月份重叠。这可能就是为什么Java拒绝将Roc月转换为ISO月,反之亦然。
我理解假设一个月中的某一天(例如1)感觉像是黑客攻击。不过,这可能是一条简单的途径。
问题内容: 我试图确定双精度的最大精度是多少。在此链接的可接受答案的注释中,Java中的double保持精度 @PeterLawrey将max precision设置为15。 您如何确定呢? 问题答案: @PeterLawrey表示最大精度为15。 实际上,这根本不是他所说的。他说的是: 双精度有15个小数位 他错了。它们的精度为15个十进制 数字 。 任何数字中的小数位数由其对数10的对数给出。
我试图确定double的最大精度是多少。在这个链接中接受的答案的注释中,Java中的Retain precision with double@PeterLawrey声明max precision In 15。 你如何确定这一点?
我试图用时间序列创建一个简单的折线图。问题是androidplot没有正确显示数组中的时间值,即日期已关闭。日期应为: 2001年1月1日、2001年2月1日、2001年3月1日、2001年4月1日、2001年5月1日 但我得到了: 2001年1月1日、2001年1月30日、2001年3月1日、2001年3月31日、2001年5月1日 您可以从格式化的调试信息中看到androidplot解释了什么
我正在创建一个图表,其中包含2个E(即一个,包含2个对象)。 碰巧的是,两个对象都具有相同的精确值,它们只是重叠,但客户机并不清楚这一点,因为他只看到结果颜色或混合了两个对象的颜色! 所以他看到图表显示了两组数据,而只画了一条线! 他们是解决这个问题的固有方法吗?你怎么解决?
我将Antlr4与python3运行时一起使用。在我试图解析的语言中,有许多操作(大约50个)接受固定数量的参数,其形式为 我以前有一个语法,规则是这样的: 您是否知道我是否可以创建一个规则,该规则也适用于?根据一个经常变化的规则(每隔几个月就会添加或删除一些操作符),拥有这个子库确实有助于清晰
问题内容: 我在Python中有一个包含浮点数的变量(例如),我想确定数字的精度和小数位数(从Oracle的角度来看),因此123.45678应该给我(8,5),12.76应该给我(4,2)等 我最初是在考虑使用字符串表示形式(通过或),但是这些操作对于大量失败了(尽管我现在理解的是浮点表示法的局限性才是问题所在): 编辑: 好点在下面。我应该澄清。该数字已经是浮点数,正在通过cx_Oracle推