首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测Hijri的日期?

如何检测Hijri的日期?
EN

Stack Overflow用户
提问于 2016-01-19 14:17:41
回答 1查看 958关注 0票数 4

有谁能说出一种很好的方法来检测以字符串形式出现的日期是否为Hijri格式?有什么好的解决方案可以自动检测字符串日期类型(Hijri)?

最初的工作或想法:我们可以检查这一年从14岁或13岁开始,就像Hijri年是“1435年”。

我知道Java的两种转换方式:

代码语言:javascript
复制
//Convert Georgian to Hijri

DateTime dtISO = new DateTime(2014,2,25,0,0,0,0);
DateTime dtIslamic = dtISO.withChronology(IslamicChronology.getInstance());
String formatIslamic= "dd-MMMM-yyyy";
DateTimeFormatter formatter = DateTimeFormat.forPattern(formatIslamic).withChronology( IslamicChronology.getInstance());
String islamicDateString = formatter.print(dtIslamic);
System.out.println(islamicDateString);

//Convert Hijri to Georgian :

Chronology iso = ISOChronology.getInstanceUTC();
Chronology hijri = IslamicChronology.getInstanceUTC();
DateTime dtHijri = new DateTime(1435,04,24,00,00,hijri); 
DateTime dtIso = new DateTime(dtHijri, iso);
System.out.println(dtIso);
EN

回答 1

Stack Overflow用户

发布于 2016-01-19 15:31:42

据我所知,区分Hijri日期和Gregorian日期的唯一真正方法是按提供的年份。对于大多数应用程序来说,这可能是足够的,但对于其他应用程序来说,这几乎是无用的。Hijri使用day/month/year格式。正如你已经知道的,试图区分第二个月和第二天是没有意义的,所以你可以忘记这一点,但是把Hijri年和公历年区分开来也有类似的问题.1492年,克里斯托弗·哥伦布在北美的土地上漂流而下,但1492年的希里是2069年的格里高利。

我想这都是建立一套规则的问题。如果代码只接受Hijri日期,那么确保用户只能提供Hijri日期,反之亦然。如果期待Hijri日期格式,并有人提供2016年的一年,那么这显然是错误的,因为2016年在Hijri实际上是2577年。如果你问我的话,这是一个很遥远的未来。

用户可以提供多远的日期?格列高利2016和1437年同等的Hijri (相差579年)之间的差别足够大,你可以建立一个自信的解释,哪一个日期格式是实际提供的,并进行必要的转换。话虽如此,一项申请所可接受的,可能不会为另一项申请所接受。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34879127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档