私は日付フィールドが.csvに配置されており、各日付から1日を引く必要があります。これらの日付は、1つのcsvからString変数として取得され、別の変数にString変数として格納されます。これらの日付はすべてmm/dd/yyyyの形式であり、これらの日付のそれぞれから1日を引く必要があります。私はこれを行う方法の最善の解決策を探しています。mm/dd/yyyyの形式で日付から1日を引く
たとえば、私は7/28/2016として日付を持っていますが、私は7/27/2016に移動する必要があります。
すべてのサポートは、事前に感謝します。
編集:すべての回答がとても早くて本当に感謝しています。最初のコメントのようにステップを分けてしまったので、JodaTimeの回答を使用できました。
これはコードです:
private String subtractDate(String date) {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
String returnValue = "";
try {
Date newDate = formatter.parse(date);
Calendar cal = Calendar.getInstance();
cal.setTime(newDate);
cal.add(Calendar.DATE, -1);
Date minusOne = cal.getTime();
returnValue = formatter.format(minusOne);
} catch (Exception e) {
e.printStackTrace();
}
return returnValue;
}
これは私がすべての答えを本当に感謝再び、今正常に動作しています。私は最初の答えを受け入れるつもりですが、それはうまくいくと思っていますが、私はその道には行かなかっただけです。
三つの部分にあなたの問題を区切り:1)より賢明な型に文字列を解析。 2)1日を引く。 3)文字列にフォーマットし直します。 'java.time.LocalDate'を使うことをお勧めします。 –
*厳密には重複していませんが、1日を追加するか1日を引くことは同じものです –
すべての助けてくれてありがとう! –