gpt4 book ai didi

java - MATLAB 中的 datestr 函数到 Java

转载 作者:行者123 更新时间:2023-12-01 19:51:04 24 4
gpt4 key购买 nike

我的文件中有一个数字格式,Matlab 将其转换为日期字符串。该格式是结构化的,例如 732161.8561226851

当我在 Matlab 中执行 datestr(732161.8561226851) 时,我得到:

ans =

'02-Aug-2004 20:32:49'

我希望实现相同的输出,但作为 Java 函数。不过,我以前从未见过这种格式,并且不确定所采取的转换过程。

将其转换为日期字符串以便我可以创建 Java 函数的过程是什么?

最佳答案

    // Matlab epoch is January 0, 0000, so subtract 1 day from January 1:
Instant matlabEpoch = Instant.parse("0000-01-01T00:00:00Z").minus(1, ChronoUnit.DAYS);

Instant inst = matlabEpoch.plusMillis(
Math.round(732161.8561226851 * TimeUnit.DAYS.toMillis(1)));
System.out.println(inst);

打印:

2004-08-02T20:32:49Z

我相信@Riley Jacob’s answer是正确的,并且看到它使用了早已过时的 Date 类。所以我想给出相同答案的现代版本。除了避免使用老式类之外,它还具有将大部分计算留给库方法的优点,这反过来又提供了更清晰的代码。

我发现值得注意的是,我们以毫秒精度得到了与 Matlab 相同的结果。如果结果相差一毫秒,则会打印为 2004-08-02T20:32:48.999Z2004-08-02T20:32:49.001Z >.

链接: Oracle tutorial: Date Time解释如何使用java.time

关于java - MATLAB 中的 datestr 函数到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51328378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com