delete from hateblo.jp where 1=1;

タイトルに意味はありません。

n日前を表示したい


対象

  • android 開発者
  • モダンなアプリの作成者
  • n日前を簡単に実装したい

結論

getRelativeTimeSpanString を使用すると、簡単に表現できる。

サンプルコード(ビルドしていないのでエラーになるかもしれません)

TextView v = (TextView)getView().findViewById(R.id.view);
DateFormat format= new SimpleDateFormat("yyyy/MM/dd");
java.util.Date date = format.parse("2014/08/26");
v.setText(date == null ? "" : DateUtils.getRelativeTimeSpanString(date.getTime()));

経緯

google:java before day とかを探したわけですが、
java - Get Previous Day - Stack Overflow とか
java - Android get date before 7 days (one week) - Stack Overflow とか
目的と違うものばかり出てくる。

なんか便利なクラスとかないのかなと探したけど、いまいち見つからない。
みんなどうやって実装しているんだろう?!
簡単だから、自前実装なのかなと思い、ライブラリを作りかけた。(必要に駆られたら継続する)
https://github.com/indication/Ndays/blob/master/ndays/src/main/java/com/github/indication/ndays/DateTimeDistance.java

同じ過ちを繰り返しませんように。

参考文献