0

我想用来自 server 的字符串 date 创建一个 Calendar 实例。现在我不知道服务器正在发送什么格式。

它可以针对不同的countries. 我知道我可以要求他们添加另一个密钥并从中dateFormat创建。Calendar但我仍然想知道有没有办法在不知道当前字符串日期格式的情况下创建日历实例。

我经历了这个这个。但没有一个能满足我的要求

4

2 回答 2

3

这是不可能的。

如果服务器发送值“1/2/2017”,您无法知道这是指 1 月 2 日还是 2 月 1 日。

如果服务器发送值“מָחָר”,理论上你可以意识到这可能是“明天”这个词的希伯来语翻译(至少,根据谷歌翻译),但即便如此,也不清楚这是否是为了相对于今天或其他日期。

如果服务器发送值“我想使用来自服务器的字符串日期创建日历实例”,则您无法从中创建日期,至少使用任何对人们有意义的算法。

等等。

服务器应该以任意格式返回日期的唯一原因是,该日期只能由首先提供该值的用户读取,并逐字逐句呈现为纯文本,而无需解析。否则,服务器应该以标准化格式提供日期,使用该日期的 UI 负责以用户友好(理想情况下,区域设置感知)的方式对其进行格式化。

欢迎您尝试暴力破解问题,迭代一系列日期格式并查看是否有任何结果导致看似有效的日期。这在 2017 年 1 月 2 日的情况下失败了(因为至少有两种格式会返回看似有效的日期),但也许您对服务器有足够的了解,可以缩小可能的格式以减少此类冲突的几率。

于 2016-11-23T13:58:04.503 回答
0

Joda Date & Time API有一个日期解析器,可以解析多种格式的日期字符串。请注意,某些日期时间字符串可能不明确:10-09-2003 可能表示 10 月 9 日或 9 月 10 日。

于 2016-11-23T15:41:10.067 回答