ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何检测Hijri日期?

2019-05-28 02:51:58  阅读:249  来源: 互联网

标签:java datetime-format jodatime hijri


任何人都可以告诉一个好方法来判断作为字符串的日期是否为Hijri格式?任何自动检测字符串日期类型(Hijri)的好解决方案?

初步工作或思考:
我们可以检查年份从14或13开始像Hijri年份那样等. “1435” ..

我知道用于转换的Java JODA API:

//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);

解决方法:

据我所知,区分Hijri日期和格里高利日期的唯一真正方法是提供的年份.对于大多数应用来说,这可能是足够的,但对于其他应用来说,它几乎没用. Hijri使用日/月/年格式.正如你已经知道的那样,试图区分第二个月和第二天是没有意义的,所以你可以忘记这一点,但区分Hijri年和格里高利年有类似的问题……克里斯托弗·哥伦布漂进来并向北方倾斜在格里高利时,土地于1492年,但在希吉里的1492年是2069年.

这就是我想要建立一套规则的问题.如果代码只是为了接受Hijri日期,那么请确保用户只能提供Hijri日期,反之亦然,以提供格里高利日期.如果Hijri日期格式是预期的,有人提供2016年,那么这显然是错误的,因为2016年Hijri实际上是2577年.如果你问我,这将是一个很小的未来.

用户提供日期后退或前进多远? Gregorian 2016与等效的Hijri 1437(579年的差异)之间的差异非常大,您可以对实际提供的日期格式建立自信的解释并进行必要的转换.然而,尽管如此,一个应用程序可接受的内容可能对另一个应用程序不可接受.

标签:java,datetime-format,jodatime,hijri
来源: https://codeday.me/bug/20190528/1167958.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有