gpt4 book ai didi

Android 以英文书面格式获取当前阿拉伯/伊斯兰日期

转载 作者:行者123 更新时间:2023-11-29 19:15:59 25 4
gpt4 key购买 nike

我在查找当前伊斯兰日期时遇到问题,我从 stackoverflow 进行了搜索并找到了一些解决方案,但这些并不是我需要的确切解决方案。这是我的代码,输出为 الأربعاء, أبريل ١٩, ٢٠١٧ 但我想将日期显示为“17th Jumada Al-Awwal 1438”格式。日期应以英文书写。

    Locale locale = new Locale("ar");
SimpleDateFormat sdf = new SimpleDateFormat("EEE, MMM dd, yyy", locale);
Date currDate = new Date();
String formattedDate = sdf.format(currDate);

最佳答案

据我所知,Android 上没有对伊斯兰日历的内置支持,除非您愿意将您的应用程序限制为 API-level 24。 (如果您喜欢 IBM 提供的 ICU4J 类的老式 API 样式;-))。但也许你可以考虑我的图书馆 Time4A然后使用此代码(另请参见 javadoc):

ChronoFormatter<HijriCalendar> hijriFormat =
ChronoFormatter.setUp(HijriCalendar.family(), Locale.ENGLISH)
.addEnglishOrdinal(HijriCalendar.DAY_OF_MONTH)
.addPattern(" MMMM yyyy", PatternType.CLDR)
.build()
.withCalendarVariant(HijriCalendar.VARIANT_UMALQURA);

// conversion from gregorian to hijri-umalqura valid at noon
// (not really valid in the evening when next islamic day starts)
HijriCalendar today =
SystemClock.inLocalView().today().transform(
HijriCalendar.class,
HijriCalendar.VARIANT_UMALQURA
);
System.out.println(hijriFormat.format(today)); // 22nd Rajab 1438

// taking into account the specific start of day for Hijri calendar
HijriCalendar todayExact =
SystemClock.inLocalView().now(
HijriCalendar.family(),
HijriCalendar.VARIANT_UMALQURA,
StartOfDay.EVENING // simple approximation => 18:00
).toDate();
System.out.println(hijriFormat.format(todayExact)); // 22nd Rajab 1438 (23rd after 18:00)

关于语言支持,所有文本资源都取代了 CLDR-v30-data (Unicode-consortium)。例如在英语中:“Jumada II”表示一年中的第 6 个月。如果你不喜欢它,你也可以提供你自己的文本。格式化程序构建器有一个 dedicated method做这个。

关于Android 以英文书面格式获取当前阿拉伯/伊斯兰日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43490863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com