1. ホーム
  2. android

[解決済み] アンドロイドで今日と昨日の時間を調べる方法

2023-01-12 01:21:40

質問

SMSを送信するアプリケーションを開発しています。現在時刻を保存し、データベースから時刻を取得して送信履歴ページに表示しています。送信履歴ページでは、メッセージが送信された時刻を表示したいのです。ここでは、メッセージが今日送信されたのか、昨日送信されたのか、一昨日送信されたのかを確認したいのです。もし、昨日送信されたのであれば、"Yesterday 20:00" と表示し、一昨日送信されたのであれば、"Monday 20:00" と表示したいのですが。どうすればいいのかわかりません。どなたかご存知でしたら教えてください。

どのように解決するのですか?

android.text.format.DateFormatクラスを使用すると簡単にできます。以下のような感じで試してみてください。

public String getFormattedDate(Context context, long smsTimeInMilis) {
    Calendar smsTime = Calendar.getInstance();
    smsTime.setTimeInMillis(smsTimeInMilis);

    Calendar now = Calendar.getInstance();

    final String timeFormatString = "h:mm aa";
    final String dateTimeFormatString = "EEEE, MMMM d, h:mm aa";
    final long HOURS = 60 * 60 * 60;
    if (now.get(Calendar.DATE) == smsTime.get(Calendar.DATE) ) {
        return "Today " + DateFormat.format(timeFormatString, smsTime);
    } else if (now.get(Calendar.DATE) - smsTime.get(Calendar.DATE) == 1  ){
        return "Yesterday " + DateFormat.format(timeFormatString, smsTime);
    } else if (now.get(Calendar.YEAR) == smsTime.get(Calendar.YEAR)) {
        return DateFormat.format(dateTimeFormatString, smsTime).toString();
    } else {
        return DateFormat.format("MMMM dd yyyy, h:mm aa", smsTime).toString();
    }
}

チェック http://developer.android.com/reference/java/text/DateFormat.html をご覧ください。