有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    简短回答:

    LocalDate date = LocalDate.now();
    long modifiedJulianDay = date.getLong(JulianFields.MODIFIED_JULIAN_DAY);
    

    说明:

    这篇文章最好地描述了朱利安日的概念。简单地说,它是一个简单的、连续的、从某个时代算起的天数,所选的时代给这个变化起了名字。因此,修改后的朱利安日从1858年11月17日开始计算

    JSR-310日期和时间对象实现了^{}接口,该接口定义了get(TemporalField)getLong(TemporalField)方法。这些允许查询日期/时间对象,以获得特定的时间字段。提供了四种现场实施方式,提供朱利安日的变体:

    • ^{}标准修改版朱利安日
    • ^{}——标准儒略日概念的午夜变体
    • ^{}基于公历时期的儒略日变化
    • ^{}-基于标准Java/UNIX 1970-01-01的儒略日变体

    这些字段只能与getLong(TemporalField)一起使用,因为它们返回的数字对于int来说太大。如果调用now.get(JulianFields.MODIFIED_JULIAN_DAY),则会引发异常:“UnsupportedTemporalTypeException:get()方法的字段ModifiedJulianDay无效,请改用getLong()

    请注意,JSR-310只能提供来自^{}的整数,因此无法表示一天中的时间,并且这些数字都基于午夜。计算也使用当地午夜,而不是UTC,这应该考虑在内

    这些字段还可用于使用^{}上的方法更新日期/时间对象:

    result = input.with(JulianFields.MODIFIED_JULIAN_DAY, 56685);