java - 在 Java 中将常规日期转换为儒略日期,反之亦然

标签 java date converter julian-date

我编写了一个简单的代码,可以将常规日期转换为 Julian 日期。

对于那些需要相同转换的人来说,这是代码:

    public int convertToJulian(String unformattedDate)
    {
    /*Unformatted Date: ddmmyyyy*/
    int resultJulian = 0;
    if(unformattedDate.length() > 0)
    {
     /*Days of month*/
     int[] monthValues = {31,28,31,30,31,30,31,31,30,31,30,31};

     String dayS, monthS, yearS;
     dayS = unformattedDate.substring(0,2);
     monthS = unformattedDate.substring(3, 5);
     yearS = unformattedDate.substring(6, 10);

     /*Convert to Integer*/
     int day = Integer.valueOf(dayS);
     int month = Integer.valueOf(monthS);
     int year = Integer.valueOf(yearS); 

         //Leap year check
         if(year % 4 == 0)
         {
          monthValues[1] = 29;    
         }
         //Start building Julian date
         String julianDate = "1";
         //last two digit of year: 2012 ==> 12
         julianDate += yearS.substring(2,4);

         int julianDays = 0;
         for (int i=0; i < month-1; i++)
         {
          julianDays += monthValues[i];
         }
         julianDays += day;

             if(String.valueOf(julianDays).length() < 2)
             {
              julianDate += "00";
             }
             if(String.valueOf(julianDays).length() < 3)
             {
              julianDate += "0";
             }

        julianDate += String.valueOf(julianDays);
    resultJulian =  Integer.valueOf(julianDate);    
 }
 return resultJulian;
}

此代码将 01.01.2013 转换为 113001

我想做的是将 Julian 日期转换为没有时间详细信息的常规日期。 例如:Julian date 是 113029 ==> Regular date 29.01.2013

请告诉我您的想法。

谢谢。

最佳答案

如果你想要 113029 ==> 29.01.2013 试试

    String j = "113029";
    Date date = new SimpleDateFormat("Myydd").parse(j);
    String g = new SimpleDateFormat("dd.MM.yyyy").format(date);
    System.out.println(g);

输出

29.01.2013

关于java - 在 Java 中将常规日期转换为儒略日期,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14535983/

相关文章:

javafx 密码字段文本

java - SCJP 需要适当的指导

c# - C#计算两年间的闰年数

wpf - 根据 bool 值更改边框颜色

sockets - 如何在 Dart 中将字符串转换为 utf8?

java - 无法将字符串转换为长

java - 设置正在运行的线程的属性

java - 自定义类和 JList

php - 在不使用任何循环的情况下查找两个日期php之间的特定日期的计数?

php - 如何使用 MEDIUM 或 FULL 日期类型使用 IntlDateFormatter 格式化日期,但没有年份?