Java中不依赖新库将Calendar实例转换为DateTime实例的方法
解决Calendar转Joda DateTime(无额外依赖)的问题
嘿,我来帮你搞定这个转换问题!既然你已经在使用Joda-Time的DateTime和IslamicChronology,那其实完全不需要引入任何新库——Joda本身就支持直接从Calendar实例转换到DateTime。
具体实现步骤
直接用Joda的DateTime构造器转换
Joda-Time的DateTime类提供了接受Calendar参数的构造方法,能直接提取Calendar中的时间、时区等信息,生成对应的DateTime实例:// 假设你的Calendar实例是calendarObj DateTime dateTimeFromCalendar = new DateTime(calendarObj);应用阿拉伯历 Chronology
拿到DateTime实例后,就可以直接复用你现有的代码来获取阿拉伯历月份了:DateTime islamicDateTime = dateTimeFromCalendar.withChronology( IslamicChronology.getInstance(tzSAUDI_ARABIA, IslamicChronology.LEAP_YEAR_15_BASED) ); int arabicMonth = islamicDateTime.getMonthOfYear();
为什么这个方案可行?
Joda-Time设计时就考虑了和Java原生日期类的兼容,DateTime(Calendar)构造器是库内建的功能,不需要额外引入任何依赖包——你已经在项目里用了Joda的类,所以这个转换完全是“零新增依赖”的。
可能你之前搜索没找到,是因为关键词没精准匹配,比如试试搜“Joda DateTime from Java Calendar”就能找到官方的相关说明啦。
内容的提问来源于stack exchange,提问作者Ossama
相关产品推荐
相关产品推荐

