标签:java java-8 date date-format
参见英文答案 > Parsing a date’s ordinal indicator ( st, nd, rd, th ) in a date-time string 4个
> Parsing dates of the format “January 10th, 2010” in Java? (with ordinal indicators, st|nd|rd|th) 4个
是否有任何java库可用于解析语言特定的序数指示符/后缀?
我有如下日期值:2017年5月26日.我想将此转换为2017年5月26日.有人可以指导我怎么做?
解决方法:
您可以使用自定义日期格式将此格式直接解析为Java 8 LocalDate:
static final Map<Long, String> ORDINAL_DAYS = new HashMap<>();
static
{
ORDINAL_DAYS.put(1, "1st");
.... more ....
ORDINAL_DAYS.put(26, "26th");
.... more ....
ORDINAL_DAYS.put(31, "31st");
}
static final DateTimeFormatter FORMAT_DAY_MONTH_YEAR = new DateTimeFormatterBuilder()
.appendText(ChronoField.DAY_OF_MONTH, ORDINAL_DAYS)
.appendLiteral(' ')
.appendText(ChronoField.MONTH_OF_YEAR)
.appendLiteral(' ')
.appendText(ChronoField.YEAR)
.toFormatter();
String dateInString = "26th May 2017";
LocalDate date = LocalDate.parse(dateInString, FORMAT_DAY_MONTH_YEAR);
这是使用DateTimeFormatter.appendText的版本,它接受用于映射日期字符串的映射.
为简洁起见,您需要填写我遗漏的ORDINAL_DAYS中的所有缺失条目.
标签:java,java-8,date,date-format 来源: https://codeday.me/bug/20190928/1826330.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。