java - 在不知道格式的情况下从字符串日期创建日历

标签 java android calendar formatdatetime

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 。但我仍然想知道是否有任何方法可以在不知道当前字符串日期格式的情况下创建日历实例。

我已经浏览过thisthis 。但没有一个能满足我的要求

最佳答案

这是不可能的。

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

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

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

等等。

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

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

关于java - 在不知道格式的情况下从字符串日期创建日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766003/

相关文章:

javascript - Angular Material Design 中的事件日历

java - 编写一个java数组并得到太多输出

java - 从接口(interface)方法返回比较对象

android - 将视频文件存储在内部或 SD 卡存储器上并受到保护?

java - 如何缩放粉色框,使其完美适合电子表格的网格,无论手机屏幕尺寸如何?安卓工作室

Android加速度计角度计算

java - iCal4J 生成的 Outlook 无法识别 .ics 文件中的时区

java - 静态 hibernate 线程与使用其实例

java - 如何在java中执行ASCII减法

python - 使用 Selenium 和 Python 的日历选择器