2016-08-03 5 views
2

を使っ日: だから私はそうすることをジョダ時間使用しています残りの年、月、私は2つの日付の間の残りの年、月、日を取得しようとしていますジョダ時間(アンドロイド)

DateTime endDate = new DateTime(2018,12,25,0,0); 
DateTime startDate = new DateTime(); 
Period period = new Period(startDate,endDate,PeriodType.yearMonthDay()); 

PeriodFormatter formatter = new PeriodFormatterBuilder().appendYears().appendSuffix(" Year "). 
      appendMonths().appendSuffix(" Month ").appendDays().appendSuffix(" Day ").appendHours()..toFormatter(); 

String time = formatter.print(period); 

これを私に文字列時間を与える:2年4ヶ月22日

しかし、残りの年、月、日のそれぞれの整数値が必要です。 ので、代わりに「2年4月22日」の、私は私の変数を設定したい:

int year = 2 
int month = 4 
int day = 22 

ではなく、1つの文字列を取得する個別にこれらの値を取得する方法はありますか?どうもありがとうございます! :)

+1

です[documentation](http://joda-time.sourceforge.net/apidocs/org/joda/time/Period.html)をお読みください!そのためのゲッターメソッドがあります。 – Andreas

答えて

1

を得るためにそれを引き、その後、フィールド情報を取得することがあります、ここでのコードスニペットは、

LocalDate d=LocalDate.of(yy,mm,dd); 
    LocalDate d2=LocalDate.of(yy, mm, dd); 
    Period p=Period.between(d, d2); 
    long day,month,year; 
    day=p.getDays(); 
    month=p.getMonths(); 
    year=p.getYears(); 
    System.out.println(day+" : "+month+" : "+year); 
0

DateTimeクラスで提供されるメソッドを呼び出し、それらを減算するだけです。年間の一例は以下の通りです:

int year = (int) dateTime#year#getField() - (int) dateTime2#year#getField()

テストされていないコード!私は後でそれに探しますが、一般的な考え方は同じですが、ちょうど私がかつて同じ要件を持っていた値

関連する問題