【问题标题】:Get Hijri date from future Gregorian date从未来的公历日期获取回历日期
【发布时间】:2018-05-26 19:43:10
【问题描述】:

我如何能够从下面的代码中获取 hijradate,而不是 now() 我想从未来的日期获取它。

java.time.chrono.HijrahDate hijradate = java.time.chrono.HijrahDate.now();
System.out.println("hijradate "+hijradate);

【问题讨论】:

    标签: java calendar hijri


    【解决方案1】:

    只要你知道怎么做就很简单了:

        LocalDate gregorianDate = LocalDate.of(2019, Month.FEBRUARY, 22);
        HijrahDate hijradate = HijrahDate.from(gregorianDate);
        System.out.println(hijradate);
    

    这个打印出来的

    Hijrah-umalqura AH 1440-06-17
    

    如果按公历日期表示您的日期在 GregorianCalendar 对象中(通常来自您无法更改或现在不想更改的旧版 API):

        GregorianCalendar gregCal = // ...
    
        ZonedDateTime gregorianDateTime = gregCal.toZonedDateTime();
        System.out.println(gregorianDateTime);
        HijrahDate hijradate = HijrahDate.from(gregorianDateTime);
        System.out.println(hijradate);
    

    在我的计算机上一次运行的输出是:

    2019-02-22T00:00+03:00[Asia/Riyadh]
    Hijrah-umalqura AH 1440-06-17
    

    编辑:为了完整起见,这里是我的导入,以便您确切知道我正在使用哪些类:

    import java.time.LocalDate;
    import java.time.Month;
    import java.time.ZoneId;
    import java.time.ZonedDateTime;
    import java.time.chrono.HijrahDate;
    import java.util.GregorianCalendar;
    

    编辑:要获得月份:使用您的搜索引擎。我用我的发现:

        int month = hijradate.get(ChronoField.MONTH_OF_YEAR);
        System.out.println(month);
        String formattedMonthName 
                = hijradate.format(DateTimeFormatter.ofPattern("MMMM", new Locale("ar")));
        System.out.println(formattedMonthName);
    

    打印出来

    6
    جمادى الآخرة
    

    最后几行灵感来​​自this answer

    【讨论】:

    • 运行此错误时出现错误:找不到符号 LocalDate gregorianDate = LocalDate.of(2019, Month.FEBRUARY, 22);符号:方法(int,Month,int)位置:类LocalDate
    • 另见上文:错误:不兼容的类型:LocalDate 无法转换为 TemporalAccessor HijrahDate hijradate1 = HijrahDate.from(gregorianDate);
    • 我正在使用import java.time.LocalDate;。你有没有机会获得不同的LocalDate 课程?
    • 谢谢。请问我怎么能得到hijradate月份
    猜你喜欢
    • 2020-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-22
    相关资源
    最近更新 更多