栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何根据语言环境格式化YearMonth和MonthDay?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何根据语言环境格式化YearMonth和MonthDay?

似乎无法在Java-9中修复此Java-8错误,因为即使feature-
extension-complete-
date

也已经结束。让我们看看它是否将在Java-10中得到修复,而Java-10仍然有很长的路要走…

当然,正如此处的一个答案所建议的那样,您可以尝试处理给定的本地化日期模式以删除不相关的部分。但是我仍然认为这种方法容易出错,因为周围仍然有很多语言环境。实际上,对于中国人来说,公认的答案是有缺陷的。本地化文字是这里的主要问题。也许至少可以针对该重要语言确定可接受的答案,但是您可能还会考虑
另外两个具有良好国际化功能的库,这些库可以更可靠地解决您的问题

a)ICU4J

DateFormat df = DateFormat.getInstanceForSkeleton(DateFormat.YEAR_MONTH, Locale.CHINESE);String output = df.format(new Date());System.out.println("ICU4J=" + output); // 2017年1月

但是,一个问题是与Java-8类型(尤其是

MonthDay
和)缺乏互操作性
YearMonth
。解决方案需要像“
Date.from(YearMonth.now().atDay(1).atStartOfDay(ZoneId.systemDefault()).toInstant());
可能”
这样的东西,但麻烦。

b)我的库Time4J(与ICU4J具有相同的数据库)

ChronoFormatter<CalendarMonth> cf =    ChronoFormatter.ofStyle(DisplayMode.FULL, Locale.CHINESE, CalendarMonth.chronology());CalendarMonth cm =     CalendarMonth.from(YearMonth.now()); // or: CalendarMonth.nowInSystemTime()System.out.println("Time4J=" + cf.format(cm)); // 2017年1月

与Java-8的互操作性也存在相反的方向。而Time4J-counterpart的

MonthDay
是class
AnnualDate


旁注:@Julian收益率的中文可接受答案:2017年1(需要确定)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/452810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号