gpt4 book ai didi

java - DateFormatSymbol 的行为在 Android 和 JRE 1.7 之间有所不同

转载 作者:行者123 更新时间:2023-11-29 08:46:47 24 4
gpt4 key购买 nike

我制作了一个用于从 JRE 和 Android 的文本中解析日期格式的 jar。

大多数情况下效果很好。但是当我尝试解析以下中文字符时,它在 Android 上失败并在 JRE 上运行。 “五月”是中文的五月。

"06 五月 2014"

我是用下面的代码来解析的

String input = "06 五月 2014"
SimpleDateFormat df = new SimpleDateFormat("dd MMM yyyy", Locale.CHINESE);
Date date = df.parse(input);

因此,我开始缩小问题范围并得到以下测试用例。

在 Android 上,

  DateFormatSymbols dfs = new DateFormatSymbols(Locale.CHINA);

String[] months = dfs.getMonths();// months[0] = 1月, months[1] = 2月 ...
String[] ampm = dfs.getAmPmStrings(); // ampm[0] = AM ampm[1] = PM

在 JRE 1.7 上,

DateFormatSymbols dfs = new DateFormatSymbols(Locale.CHINA);

String[] months = dfs.getMonths();// months[0] = 一月, months[1] = 二月 ...
String[] ampm = dfs.getAmPmStrings(); // ampm[0] = 上午 ampm[1] = 下午

为什么会这样?这是正常操作还是我遗漏了什么?

最佳答案

忽略 Java 和 Android 之间的差异,您的代码甚至不能保证在不同的 Java 虚拟机上运行。 API 文档不包含不同日期格式化程序的正式规范,并且您不能保证来自一个 Java VM 的格式化输出可以被另一个 Java VM 解析。

在这种情况下,Oracle VM 中的本地化数据库使用“五月”作为五月的中文单词(文学:“五月”)。您的 Android 本地化数据库使用“5月”(文学:“5th moon”),这同样正确,但有所不同。

关于java - DateFormatSymbol 的行为在 Android 和 JRE 1.7 之间有所不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com