【问题标题】:Julian Date Conversion儒略日期转换
【发布时间】:2016-05-02 19:02:28
【问题描述】:
Sample Julian Dates:
2009218
2009225
2009243

如何将它们转换为常规日期?

我尝试使用online converter 转换它们,然后我得到了-

12-13-7359 为 2009225!!毫无意义!

【问题讨论】:

  • 你的例子不是朱利安日期。儒略日期是自公元前 4713 年 1 月 1 日以来的天数 - 例如 2.451.545 表示 2000-01-01。 (如果 2009225 是您想要的儒略日期,那么在线转换器是正确的)
  • 我是这么认为的,但我不知道那些日期是什么样的!甚至不能问。
  • 我不清楚您要从什么转换:儒略历日期?还是修改后的 Julian Days (天文数据),如您的链接中所示?如果这些日期以年份开头,则存在歧义(2009111 是 1 月 11 日还是 11 月 1 日?)。
  • 我希望我能问客户并回答您的问题。
  • 我唯一能想到的是它们的格式为“YYYYDDD”——YYYY 中的第 DDD 天。但是,如果您想确保它正确完成您必须询问日期的来源,或者至少有足够数量的示例(编码日期和相应的实际日期) ) 能够确定含义。

标签: java julian-date


【解决方案1】:

使用Joda-Time 库并执行以下操作:

String dateStr = "2009218";
MutableDateTime mdt = new MutableDateTime();
mdt.setYear(Integer.parseInt(dateStr.subString(0,3)));
mdt.setDayOfYear(Integer.parseInt(dateStr.subString(4)));
Date parsedDate  = mdt.toDate();

使用 Java API:

String dateStr = "2009218";
Calendar cal  = new GregorianCalendar();
cal.set(Calendar.YEAR,Integer.parseInt(dateStr.subString(0,3)));
cal.set(Calendar.DAY_OF_YEAR,Integer.parseInt(dateStr.subString(4)));
Date parsedDate  = cal.getTime();

---- 编辑 ---- 感谢 Alex 提供最佳答案:

Date myDate = new SimpleDateFormat("yyyyD").parse("2009218")

【讨论】:

  • MutableDateTime 会计算出月份,因为它知道一年中的年份和日期。
  • 我没有办法使用 Java API 来做到这一点吗?
  • 我们将不胜感激和/或将我的答案标记为正确 :)
  • 对不起-我的错。 :)) 注意:您可能需要进一步编辑,因为 set 没有 (int, long) 方法。可能想将它们更改为整数。
  • 使用内置的日期解析器!
【解决方案2】:

另一种格式是 CYYDDDD 我用 Java 写了这个函数

public static int convertToJulian(Date date){
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);
    int year = calendar.get(Calendar.YEAR);
    String syear = String.format("%04d",year).substring(2);
    int century = Integer.parseInt(String.valueOf(((year / 100)+1)).substring(1));
    int julian = Integer.parseInt(String.format("%d%s%03d",century,syear,calendar.get(Calendar.DAY_OF_YEAR)));
    return julian;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2015-11-08
    相关资源
    最近更新 更多