0

我面临有关伊斯兰日期格式的问题。该应用程序的要求是根据当前区域设置显示日期和时间,因此在美国我们将显示日期为 2021 年 3 月 20 日,而在欧盟则显示为 20. 3. 2021。

我一直在这个项目中使用 Joda Time,所以我不想改变底层逻辑。但如果有必要我会的。

这是我用于日期格式的 DateTime 扩展的代码片段。该代码在欧盟和美国地区格式化日期时有效,就像我上面提供的示例一样,它完全按照预期工作。

val DateTime.dateString: String
get() {
    val dateFormat = DateTimeFormat.shortDate().withZone(DateTimeZone.forTimeZone(TimeZone.getDefault())).withLocale(Locale.getDefault())
    return dateFormat.print(this)
}

当用户使用例如阿拉伯语时,问题就出现了。在这种情况下,日期输出为 2021/3/20。现在我对伊斯兰日期知之甚少,但有人告诉我有更好的方法,也可以用特殊字母/数字格式化日期。

JodaTime 和 Java Date 类似乎都有一些特殊的类来处理伊斯兰日期。例如,伊斯兰年表和伊斯兰日历。但我现在想知道如何正确检查当前的区域设置语言是否应该具有伊斯兰日期,然后相应地输出它们,以及它们的特殊字母和数字?

抱歉,如果这是一个令人困惑的问题,但这对我来说是一个令人困惑的话题。我以前从未处理过这些东西,老实说,我已经很难理解伊斯兰国家期望什么样的日期格式,更不用说编程了。

4

0 回答 0