从字符串日期创建日历而不知道格式

时间:2016-11-23 13:36:44

标签: java android calendar formatdatetime

  

我想创建一个日历实例,字符串日期来自服务器。现在我不知道服务器发送的是什么格式。

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

我经历了thisthis。但没有一个符合我的要求

2 个答案:

答案 0 :(得分:3)

这是不可能的。

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

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

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

等等。

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

欢迎您尝试强制解决问题,迭代一系列日期格式,并查看看似有效日期是否有任何结果。这在1/2/2017场景中失败了(因为至少有两种格式会返回一个看似有效的日期),但也许您对服务器有足够的了解,可以缩小可能的格式以减少这种冲突的几率。

答案 1 :(得分:0)

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