Что эквивалентно getTime (), который является методом в Date, в joda.time.LocalDate? - PullRequest
1 голос
/ 23 ноября 2011

Я делал простой расчет, чтобы получить разницу между двумя датами.Если бы я использовал класс Date, я мог бы сделать так:

Date d1 = new GregorianCalendar(2000, 11, 31, 23, 59).getTime();

    /** Today's date */
    Date today = new Date();

    // Get msec from each, and subtract.
    long diff = today.getTime() - d1.getTime();

    System.out.println("The 21st century (up to " + today + ") is "
        + (diff / (1000 * 60 * 60 * 24)) + " days old.");
  }

Но я не смог найти метод, подобный getTime () в Local date.Есть ли способ, чтобы я мог легко получить то, что я пытаюсь достичь?

Я даже пытался изменить свой объект LocalDate на временный объект даты, например:

 LocalDate date=new LocalDate();
    Date d=date.toDate();

, но методtoDate () не работает.то есть он говорит, что это не распознанный метод. (так что ошибка времени компиляции), но из того, что я вижу, это в Документации

Спасибо за ваше время и, конечно, счастливое Благодарение.

Ответы [ 4 ]

1 голос
/ 23 ноября 2011

Days.daysBetween () является ответом.

LocalDate now = new LocalDate();
LocalDate past = now.minusDays(300);
int days = Days.daysBetween(past,now).getDays();

Никогда преобразовать LocalDate в Java Date (два совершенно разных зверя), если вы просто имеете дело с датами. Локальная дата Jodatime является истинной «календарной датой», т. Е. Кортежем {день, месяц, год} (вместе со спецификацией григорианского календаря), и не имеет ничего общего с «физическим временем», секундами, часами и т. Д. Если вам нужно делать арифметику дат, придерживайтесь Localdate, и вам никогда не придется беспокоиться о глупых ошибках (часовых поясах, летнем времени и т. Д.), Которые могут возникнуть, если вы датируете даты с использованием java Dates.

1 голос
/ 23 ноября 2011

Попробуйте что-то вроде этого:

      LocalDate date =  new LocalDate();

       Date utilDate = date.toDateTimeAtStartOfDay( timeZone ).toDate( );

или обратитесь к этому сообщению

Как конвертировать Joda LocalDate в java.util.Date?

0 голосов
/ 23 ноября 2011
private long diff(Calendar c1, Calendar c2) { 
  long d1 = c1.getTimeInMillis();
  long d2 = c2.getTimeInMillis();
  return ((d2 - d1) / (60*60*24*1000));
}
0 голосов
/ 23 ноября 2011

Я протестировал этот пример кода, чтобы выяснить разницу в днях, вы можете найти разницу в соответствии с вашими потребностями.

Пожалуйста, см. http://joda -time.sourceforge.net / key_period.html

    LocalDate currentDate = new LocalDate();

    LocalDate previousDate = currentDate.minusDays(1);
    System.out.println(currentDate);
    System.out.println(previousDate);

    Period periodDifference = new Period(currentDate, previousDate, PeriodType.days());
    System.out.println(periodDifference);
...