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
同じ過ちを繰り返しませんように。
参考文献
- Y.A.M の 雑記帳: Android 日時の表示形式を指定する 時間の表現のまとめがある