【发布时间】:2015-05-25 13:29:49
【问题描述】:
yy = 15(年),D = 150(一年中的一天),HH = 10(小时)
Date myDateWrong = new SimpleDateFormat("yyDHH").parse("1515010");
Date myDateTrue = new SimpleDateFormat("yyD").parse("15150");
myDateTrue 是正确的:2015 年 5 月 30 日。 myDateWrong 必须是 30/05/2015 10:00:00,但似乎是 28/07/2015 18:00:00。这里有什么问题?
【问题讨论】:
-
我没有使用 Java 中的常规 Date 类,所以我无法帮助你。但我一直使用Joda-Time library,它确实支持Julian calendar。因此,如果本机 Java 库不适合您,您可以考虑使用它。
-
首先你应该避免使用 java Date 作为儒略历。 Java Date API 被破坏了,尤其是在涉及复杂的时间处理和计算时,例如使用不同的日历。 Java 8 有一个新的时间 API 可以解决这些问题,其中 Date 已被 LocalDateTime 取代。儒略历是由公历在 Java 8 中实现的。 docs.oracle.com/javase/8/docs/api/java/util/…
-
你能解释一下你对“朱利安”这个词的理解吗? (儒略历或儒略日数)有几种完全不同的含义。
-
@Pierre 我觉得你的评论很奇怪。首先,您抱怨旧的 Java 对日期和时间的支持。然后你推荐使用 Java-8 和新的
java.time-package。最后你回到推荐java.util.GregorianCalendar的旧Java-stuff,它与Java-8中引入的新时间库无关。我觉得很混乱。顺便说一句:java.util.Date的新替代品是java.time.Instant。
标签: java date simpledateformat julian-date