在 JSR-310 中计算修改后的儒略日

2024-03-09

如何从 JSR-310 类计算修改后的儒略日,例如LocalDate? (在 JDK 8 中)

具体来说,这是计算连续计算天数 http://en.wikipedia.org/wiki/Julian_day被称为“修改儒略日”,而不是日期儒略历系统 http://en.wikipedia.org/wiki/Julian_calendar.

例如:

LocalDate date = LocalDate.now();
long modifiedJulianDay = ???

简短回答:

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

解释:

The 维基百科 http://en.wikipedia.org/wiki/Julian_day文章对儒略日这个概念进行了最好的描述。简而言之,它是对某个纪元的简单、连续的天数计数,所选纪元为该变体命名。因此,修正儒略日从 1858 年 11 月 17 日开始计算。

JSR-310 日期和时间对象实现TemporalAccessor http://download.java.net/jdk8/docs/api/java/time/temporal/TemporalAccessor.html定义方法的接口get(TemporalField) and getLong(TemporalField)。这些允许查询特定的日期/时间对象field的时间。提供了四种现场实现,提供儒略日变化:

  • JulianFields.MODIFIED_JULIAN_DAY http://download.java.net/jdk8/docs/api/java/time/temporal/JulianFields.html#MODIFIED_JULIAN_DAY- 标准修改儒略日
  • JulianFields.JULIAN_DAY http://download.java.net/jdk8/docs/api/java/time/temporal/JulianFields.html#JULIAN_DAY- 标准儒略日概念的基于午夜的变体
  • JulianFields.RATA_DIE http://download.java.net/jdk8/docs/api/java/time/temporal/JulianFields.html#RATA_DIE- 基于公历共纪元的儒略日变体
  • ChronoField.EPOCH_DAY http://download.java.net/jdk8/docs/api/java/time/temporal/ChronoField.html#EPOCH_DAY- 基于标准 Java/UNIX 1970-01-01 的儒略日变体

这些字段只能与getLong(TemporalField)因为它们返回的数字对于int。如果你打电话now.get(JulianFields.MODIFIED_JULIAN_DAY)那么将抛出异常:“UnsupportedTemporalTypeException:get() 方法的 ModifiedJulianDay 字段无效,请改用 getLong()”

请注意,JSR-310 只能提供以下整数:TemporalField http://download.java.net/jdk8/docs/api/java/time/temporal/TemporalField.html,因此无法表示一天中的时间,并且数字均基于午夜。计算还使用当地午夜,而不是 UTC,这一点应该考虑在内。

这些字段还可以用于使用以下方法更新日期/时间对象Temporal http://download.java.net/jdk8/docs/api/java/time/temporal/Temporal.html:

result = input.with(JulianFields.MODIFIED_JULIAN_DAY, 56685);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 JSR-310 中计算修改后的儒略日 的相关文章

随机推荐

  • SKVideoNode 作为 SCNSphere 的纹理

    我正在尝试使用 SKVideoNode 作为 SCNView 中 SCNSphere 的视频纹理源 我正在关注这个答案 SKVideoNode 嵌入在 SKScene 中 作为场景套件节点的纹理不起作用 https stackoverflo
  • 错误:功能未正确部署

    功能部署有错误 要继续部署其他功能 例如数据库 请运行 firebase deploy except functions Error 功能未正确部署 尝试运行部署 debug 例如 firebase debug deploy 就我而言 该函
  • 如何从 Angular 属性指令中访问元素 HTML?

    Angular 文档提供了一个创建更改元素背景颜色的属性指令的示例 https angular io docs ts latest guide attribute directives html https angular io docs
  • doLayout 和包含在“Java Play!”模板中的区别是什么?

    When 延伸 with doLayout你只能有一个子模板 但是你可以include超过一个 有什么区别 最佳实践是什么 它们是彼此相反的 doLayout被用作extends标签 extends 标签指定您想要扩展哪个模板 以及doLa
  • xlswrite 如果是向量

    我有一个 mat 文件 其中包含titles time data 和 2 个列向量 time 1 2 3 4 5 and data 10 20 30 40 50 我创建了一个名为 table time data time data 的新单元
  • 如何在 Ruby 中使用 selenium-webdriver/capybara 截取完整浏览器页面及其元素的屏幕截图?

    我正在研究屏幕截图自动化 特别是 我正在努力实现以下目标 提示用户提供网站不同页面的链接 X 提示用户输入类名 Y 我应该能够访问网站 X 登录页面 提供登录详细信息 假设它们已知 单击 提交 按钮 这应该将我重定向到 主页 页面 然后 我
  • AppHarbor可以在构建过程中设置条件编译符号吗?

    AppHarbor可以在构建过程中设置条件编译符号吗 也许很简单 AppHarbor 我有一些测试无法在服务器上运行 它们依赖于测试数据文件 如果 AppHarbor 可以设置条件编译符号 那么当该符号存在时 我可以在测试中添加 Ignor
  • 带自定义滚动条的 Jquery 选项卡式导航

    请参阅新的 更新的问题 https stackoverflow com questions 7423874 jquery navigation and jscrollpane work at first but not after clic
  • 使时间序列在轴上显示最后一个日期?

    所以在 Chart js 中我有一个基于日期范围的时间序列 该图表无法将所有日期显示为轴标签 因此它显示了合理的选择 它始终在左侧显示第一个日期 但并不总是在轴的右端显示最后一个日期 例如 我的日期范围可以是从 1 月 1 日到 7 月 3
  • Java 支持柯里化吗?

    我想知道是否有任何方法可以在 Java 中实现这一点 我认为如果没有对闭包的原生支持 这是不可能的 Java 8 2014 年 3 月 18 日发布 确实支持柯里化 示例 Java 代码发布于Missingfaktor 的回答 https
  • 如何收集任何 java 进程的堆转储

    我是 Heaps 新手 谁能建议我如何获取任何 java 进程 如 Jmeter 的堆转储 我读到了有关 jmap 命令的内容 但我不知道在哪里以及如何执行 编写它 在 Eclipse 或 cmd 中 这可能是一个非常基本的问题 但仍然需要
  • cv::findContours 返回的轮廓是否具有一致的方向?

    我正在使用 OpenCVcv findContours http docs opencv org 2 4 modules imgproc doc structural analysis and shape descriptors html
  • 登录时 BjyAuthorize 未检测到角色

    我正在使用 ZF2 Doctrine ORM 和 BjyAuthorize 问题是 当我登录时 身份的 getRoles 方法返回空 class User implements UserInterface ProviderInterface
  • Oracle - select 语句中的动态列名

    问题 是否可以根据结果集中的值更改 select 语句中的列名称 例如 如果一个year结果集中的值小于1950 为列命名OldYear 否则命名该列NewYear The year结果集中的值保证所有记录都相同 我认为这是不可能的 但这是
  • 如何防止用户使用 dotnet core 和 RESTful API 访问其他用户的数据?

    我正在尝试找到一个没有被广泛讨论的简单问题的最佳解决方案 我的应用程序有很多可以创建和编辑数据的用户 用户应该只查看和编辑他的数据 而不是其他人的数据 想想爱丽丝 她有一家餐厅 A 有一个菜单 MenuA 而鲍勃有一家餐厅 B 有一个菜单
  • 软件可扩展性测试是否有明确的模式?

    我最近对识别软件可扩展性测试的模式非常感兴趣 由于不同软件解决方案的本质不同 可伸缩性测试软件问题的良好解决方案似乎与设计和实现软件的问题一样多 对我来说 这意味着我们可能可以为此类广泛使用的测试提炼出一些模式 为了消除歧义 我会提前说明我
  • 在Mysql表中保存座位安排

    你好 有人可以建议我一种保存座位安排的方法 它是 mysql 表中的 nXm 矩阵 以下是我们如何生成 nXm 表 管理员指定总线的行数和列数 管理员选择矩阵的特定元素是否是 Seat Passage Sleeper 注 一个卧铺占用2个元
  • didSelectRowAtIndexPath 未调用到 cellForRowAtIndex 的 UIButton

    我知道这里有很多关于这个问题的重复项 但我的要求是我在一个单元格上添加了 2 个 UIButtons 并且这两个按钮将打开两个不同的视图 如果我将属性 userInteractionEnabled 设置为 YES 那么它不会从下面的代码中获
  • 使用 Windows 成像组件 (WIC) 的 Delphi 2007

    我需要在Delphi 2007中读取一些大约1 7mb的图片并将其从jpg转换为bmp 有些图片被剪切 灰度或转换后最差 我进行了搜索 但没有找到在 delphi 2007 中添加像 TWicImage 这样的 WIC 例程的技巧 我在某处
  • 在 JSR-310 中计算修改后的儒略日

    如何从 JSR 310 类计算修改后的儒略日 例如LocalDate 在 JDK 8 中 具体来说 这是计算连续计算天数 http en wikipedia org wiki Julian day被称为 修改儒略日 而不是日期儒略历系统 h