tl;博士
java.time.chrono.HijrahDate.from(
LocalDate.of( 2014 , 2 , 25 )
)
.get( ChronoField.YEAR )
1435
java.time
Joda-Time项目现在处于维护模式,建议迁移到java.time类。
java.time类在java.time.chrono
包中提供了HijrahChronology
和HijrahDate
。
对于Java 6和7以及早期的Android,ThreeTen-Backport项目还提供了HijrahChronology
和.HijrahDate
LocalDate ld = LocalDate.of( 2014 , 2 , 25 ) ;
HijrahDate hd = HijrahDate.from( ld );
String output = hd.toString() ;
输出: 希吉拉-乌马尔库拉 AH 1435-04-25
至于其他格式,方法似乎恢复到ISO年表。format
DateTimeFormatter
Locale locale = Locale.forLanguageTag( "en-US-u-ca-islamic-umalqura" );
DateTimeFormatter f = DateTimeFormatter.ofLocalizedDate( FormatStyle.FULL ).withLocale( locale );
String output2 = hd.format( f );
产出2: 星期二, 二月 25, 2014
虽然我现在没有时间这样做,但我建议查看HijrahDate::toString
方法的源代码。
您可以使用 java.time.chrono 包文档中的示例代码来滚动自己的格式设置。
int day = hd.get( ChronoField.DAY_OF_MONTH );
int dow = hd.get( ChronoField.DAY_OF_WEEK );
int month = hd.get( ChronoField.MONTH_OF_YEAR );
int year = hd.get( ChronoField.YEAR );
System.out.printf( "%s %s %d-%s-%d%n" , hd.getChronology().getId() , dow , day , month , year );
Hijrah-umalqura 2 25-4-1435
另请参阅:
用java格式将贾拉利日历转换为格鲁吉亚语
从回历日期字符串中获取公历日期
关于 java.time
java.time 框架内置于 Java 8 及更高版本中。这些类取代了麻烦的旧旧日期时间类,如java.util.Date
,Calendar
和SimpleDateFormat
。
Joda-Time 项目现在处于维护模式,建议迁移到 java.time 类。
要了解更多信息,请参阅 Oracle 教程。搜索 Stack Overflow 以获取许多示例和解释。规格是JSR 310。
您可以直接与数据库交换 java.time 对象。使用符合 JDBC 4.2 或更高版本的 JDBC 驱动程序。不需要字符串,不需要类。java.sql.*
从哪里获取 java.time 类?
ThreeTen-Extra 项目通过其他类扩展了 java.time。这个项目是未来可能添加到java.time的试验场。您可以在此处找到一些有用的课程,例如Interval
,YearWeek
,YearQuarter
等。