I want to create an instance of Calendar with string date coming from server. Now I don't know what format server is sending .
可以针对不同的国家/地区进行更改
。我知道我可以要求他们为 dateFormat
添加另一个键并从中创建 Calendar
。但我仍然想知道是否有任何方法可以在不知道当前字符串日期格式的情况下创建日历实例。
最佳答案
这是不可能的。
如果服务器发送值“1/2/2017”,您无法知道这是指 1 月 2 日还是 2 月 1 日。
如果服务器发送值“מָחָר”,理论上你可以意识到这可能是“明天”一词的希伯来语翻译(至少根据谷歌翻译),但即便如此,也不清楚是否这是相对于今天或其他日期而言的。
如果服务器发送值“我想创建一个带有来自服务器的字符串日期的日历实例”,则您无法从中创建日期,至少无法使用任何对人们有意义的算法。
等等。
服务器应以任意格式返回日期的唯一原因是,该日期只能由首先提供该值的用户读取,并逐字显示为纯文本,而不进行解析。否则,服务器应以标准化格式提供日期,而使用该日期的 UI 负责以用户友好(并且最好是区域设置感知)的方式对其进行格式化。
欢迎您尝试暴力解决问题,迭代一系列日期格式并查看是否有任何结果看似有效的日期。这在 2017 年 1 月 2 日场景中失败了(因为至少有两种格式会返回看似有效的日期),但也许您对服务器有足够的了解,可以缩小可能的格式范围,以减少此类冲突的可能性。
关于java - 在不知道格式的情况下从字符串日期创建日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766003/