我从用户那里拿一年号码。如何将其转换为hijri年份数?更好地使用jodatime而不是time4j或java 8.
示例:我需要从2016年开始拥有hijri年份。
我找到了这篇文章Is there any library or algorithm for Persian (Shamsi or Jalali) calendar in Android?
System.out.println(jalali.transform(PlainDate.class)); // 2015-03-25
但是方法 transform 不起作用。
此外,我发现此帖子将hijri转换为gregorian: Get a gregorian date from Hijri date strings
但我需要从gregorian到hijri。
答案 0 :(得分:1)
句子“但方法转换不起作用。”应该读作“不编译”。
原因是<section href="#" id="showItem"></section>
<select id="options">
<option value="page1.php">Page 1</option>
<option value="page2.php">Page 2</option>
</select>
<script type="text/javascript" src="js/jquery-2.2.0.min.js"></script>
<script type="text/javascript">
var options = $('select#options').val();
var section = $('section#showItem');
var getPage = function (url) {
$.get(url).success(function (data) {
section.html(data);
}).error(function () {
section.html("error loading page");
});
};
$('select#options').change(function () {
var options = $('select#options').val();
getPage(options);
});
$(document).ready(function () {
getPage(options);
});
</script>
代表了一系列不同的变体(例如Umalqura)。技术背景:此类继承自HijriCalendar
而非CalendarVariant
。因此,编译器会强制您使用Calendrical
方法和TWO arguments。第二个参数指定transform()
的变体。例如:
HijriCalendar
此示例还说明了为什么指定变体很重要。你看到一天的差异(相同的格里高利日期)!实际上,Time4J支持11种变体。 umalquara变体是沙特阿拉伯的官方日历,而8种算法变体应该被解释为近似值并具有更宽的有效范围。
一旦你拥有PlainDate today = SystemClock.inLocalView().today();
HijriCalendar umalqura =
today.transform(HijriCalendar.class, HijriCalendar.VARIANT_UMALQURA);
HijriCalendar westIslamicCivil =
today.transform(HijriCalendar.class, HijriAlgorithm.WEST_ISLAMIC_CIVIL);
System.out.println(umalqura); // AH-1437-07-23[islamic-umalqura]
System.out.println(westIslamicCivil); // AH-1437-07-22[islamic-civil]
的实例,你就可以轻松获得hijri年份:
HijriCalendar