在Java中将天数转换为数月和数周?

时间:2017-03-26 12:42:03

标签: java

基本上我已经:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

String ActualDate          = "2017-01-05";
LocalDate dt               = LocalDate.parse(ActualDate, formatter);
LocalDateTime currentdate  = LocalDateTime.now();
String datetocheckstr      = currentdate.toString().substring(0, 10);
LocalDate datetochkbetween = LocalDate.parse(datetocheckstr, formatter);
long DAYS                  = ChronoUnit.DAYS.between(datetochkbetween, dt);

这非常有用,可以显示ActualDatenow之间的天数。

现在我需要将其转换为年,月和日。 因此,如果我的ActualDate = "2015-02-15"和现在2017-03-27我需要获得的输出是:2 Years 1 Month and 12 Days

和平在我们身上

1 个答案:

答案 0 :(得分:2)

您可以使用java 8中的Period类。 我已经更新了你的代码。 试试吧:

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
    String ActualDate = "2015-02-15";
    LocalDate dt = LocalDate.parse(ActualDate, formatter);
    LocalDate currentdate = LocalDate.now();
    Period period = Period.between(dt, currentdate);
    System.out.println("Years " + period.getYears());  //Years 2
    System.out.println("Months " + period.getMonths()); //Months 1
    System.out.println("Days " + period.getDays()); //Days 11