- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的应用程序中,我需要以区域设置敏感的方式显示日期。因此,“2018 年 5 月 10 日星期四”在 en_US 中应显示为“2018 年 5 月 10 日星期四”,但在 en_GB(英国英语)中应显示为“2018 年 5 月 10 日星期四”。
在大多数情况下,我可以将以下代码风格与 java.time API 类一起使用:
public String toString(ZonedDateTime input) {
DateTimeFormatter dateTimeFormatter = getDateTimeFormatter(FormatStyle.MEDIUM, FormatStyle.SHORT);
return input.format(dateTimeFormatter);
}
private DateTimeFormatter getDateTimeFormatter(FormatStyle dateStyle, FormatStyle timeStyle) {
String pattern = DateTimeFormatterBuilder.getLocalizedDateTimePattern(
dateStyle, timeStyle, IsoChronology.INSTANCE, Locale.getDefault());
return DateTimeFormatter.ofPattern(pattern);
}
在这种情况下,我不指定明确的日期模式,而是指定符号格式样式。
我不确定处理没有满足我需要的标准 FormatStyle 的情况的最佳方法。
一个具体的例子是我需要显示星期几、月份和日期但没有年份。
因此,“2018 年 5 月 10 日星期四”在 en_US 中应显示为“5 月 10 日星期四”,但在 en_GB(英国英语)中应显示为“5 月 10 日星期四”。
关于如何处理这个要求有什么建议吗?
最佳答案
String formatPattern = DateTimeFormatterBuilder.getLocalizedDateTimePattern(
FormatStyle.FULL, null, IsoChronology.INSTANCE, loc);
formatPattern = formatPattern.replaceFirst("^.*?([MLdEec].*[MLdEec]).*$", "$1");
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(formatPattern, loc);
System.out.println(LocalDate.now(ZoneId.of("Pacific/Johnston")).format(dateFormatter));
loc
等于 Locale.US
的输出:
Thursday, May 10
还有 Locale.UK
(英国):
Thursday, 10 May
工作原理:我从本地化格式模式字符串开始。在我的正则表达式中,我识别与月份 (ML
)、月份日期 (d
) 和星期几 (Eec
)。我保留了从第一个到最后一个这样的字母的子字符串。领先的勉强量词 .*?
确保我得到第一个匹配的字母。如果某些语言环境将年份放在这些想要的元素之间,它最终将被包括在内。
我感觉自己太有创意了。在决定您想要这样的东西之前,请使用您能想到的所有测试示例进行测试。
关于Java:如何以语言环境敏感的方式显示工作日、月份和日期以及没有年份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50277395/
我这里有一些(遗留)代码,似乎在LD_LIBRARY_PATH上调用setenv(其值在编译时未知,实际上它将从命令中获取)行),现在我必须将其移植到 Windows。我怀疑 setenv 只是出于历
我在 SSIS 包上有一个敏感字符串参数,用于存储远程服务器的密码。 但是,当字符串值包含花括号时,作业代理会在配置该步骤的包参数时抛出错误: Microsoft SQL Server Managem
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
我正在对我的博客进行简单搜索。我使用亚美尼亚语,当我搜索时,这些字母总是很敏感。这是我的代码的一部分。提前谢谢你。 search_query = get.get('search') query_lis
想象一下这个非常基本的可拖放设置: #dropArea 是可放置的。 #itemBox > .item 是可拖动对象。 由于某种原因,droppable
我有这样的网址: http://quickstart.local/public/category1/product2 并且在 url (category1/product2) 数字是 id ,从数据库
我是一名优秀的程序员,十分优秀!