Java 如何在jalali(shamsi)日历中为日期添加天数
我正在开发一个java应用程序,其中我需要从用户那里获取日期和天数,然后将这些数字添加到日期中,并向用户显示最终日期,在本例中,该日期将是截止日期。 这里的问题是,我使用的是shamsi(jalali)日历,为了计算,首先我必须将shamsi日期转换为java标准日历,然后添加日数,再将其转换回shamsi日期Java 如何在jalali(shamsi)日历中为日期添加天数,java,date,calendar,Java,Date,Calendar,我正在开发一个java应用程序,其中我需要从用户那里获取日期和天数,然后将这些数字添加到日期中,并向用户显示最终日期,在本例中,该日期将是截止日期。 这里的问题是,我使用的是shamsi(jalali)日历,为了计算,首先我必须将shamsi日期转换为java标准日历,然后添加日数,再将其转换回shamsi日期 Date miladiDate = new Date(DateConvertor.shamsi2miladi(entity.getDoDate())); SimpleDateForma
Date miladiDate = new Date(DateConvertor.shamsi2miladi(entity.getDoDate()));
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
c.setTime(miladiDate);
c.add(Calendar.DATE, baseEvaluate.getDeadLineDays());
String output = sdf.format(c.getTime());
System.out.println(output);
entityDetail.setDeadLineDate(DateConvertor.miladi2date(c.getTime()));
我想知道是否有一种方法可以在不转换shamsi日期的情况下实现这一点,只需将日期添加到shamsi日期。
注意:我使用了joda time,它不支持shamsi日历。
您可以使用github和jcenter上提供的Jalali日历,它有一个内置的方法来根据日差计算日期:
这个类似的问题提供了源代码,它声称这是一个准确的太阳历,可以转换成波斯(Shamsi)日期 其他一些答案可能会有所帮助请原谅我的无知,因为我对波斯日历一无所知……但我可以告诉你,将日历系统插入Java的现代日期时间体系结构(Java.time)是可能的 java.time 旧的java.util.Date/.Calendar类非常混乱,应该避免使用。它们已经被内置在Java8和更高版本中的框架所取代 插入实现 我建议寻找,甚至制作一个可以插入java.time框架的年表。这将是对的实施,而且很可能是对的扩展
下面我列出了十个实现,因为它们都是开源的,可以为任何尝试实现的人提供帮助。这个列表显示,将实现插入java.time被证明是可行的 java.time框架目前包括以下日历系统:
农历
基于事实上的世界日历ISO-8601标准)
日本的皇家历法体系
民国历法,主要用于台湾
主要用于泰国
主要用于信奉基督教的埃及
主要用于埃塞俄比亚
朱利安历法体系,现代公历和ISO历法的前身
52/53周的会计日历系统,遵循
思想系统
ChronoLocalDate
-API,其警告如此之多,以至于其javadoc看起来像“不要使用我”。可插拔的年表是邪恶的设计,它们不能考虑各种日历的古怪和偏差,因为它们只是试图定义一个“标准”方案。另见。Oracle在java.time
中事实上恢复了这一概念,只是形式有所不同。