Android Java 是否爲昨天 今天 明天,24小時或12小時制

昨天、今天和明天

package com.sogou.baselib;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class STDayUtils {

    private final static int ONE_DAY_MILLISECOND = 1000 * 60 * 60 * 24;

    public static boolean isYesterday(long compareMillionSeconds, long currentTimeMillions) {
        long todayZeroMillionSeconds = getTodayZeroMillionSeconds(currentTimeMillions);
        return (todayZeroMillionSeconds - compareMillionSeconds > 0) && (todayZeroMillionSeconds - compareMillionSeconds <= ONE_DAY_MILLISECOND);
    }

    public static boolean isToday(long compareMillionSeconds, long currentTimeMillions) {
        long todayZeroMillionSeconds = getTodayZeroMillionSeconds(currentTimeMillions);
        return (compareMillionSeconds - todayZeroMillionSeconds >= 0) && (compareMillionSeconds - todayZeroMillionSeconds < ONE_DAY_MILLISECOND);
    }

    public static boolean isTomorrow(long compareMillionSeconds, long currentTimeMillions) {
        long todayZeroMillionSeconds = getTodayZeroMillionSeconds(currentTimeMillions);
        return (compareMillionSeconds - todayZeroMillionSeconds >= ONE_DAY_MILLISECOND) && (compareMillionSeconds - todayZeroMillionSeconds < ONE_DAY_MILLISECOND * 2);
    }


    /**
     * @return 當天0點的時間
     */
    private static long getTodayZeroMillionSeconds(long currentTimeMillion) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        try {
            return format.parse(format.format(new Date(currentTimeMillion))).getTime();
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return 0;
    }


}

手機是24 or 12 小時制

DateFormat.is24HourFormat(context)

24小時用的kotlin寫的

注意Calender對象set time前要先 clear()

import android.text.format.DateFormat
import com.sogou.baselib.STDayUtils
import com.sogou.translator.app.SogouApplication
import java.text.SimpleDateFormat
import java.util.*

object TimeStampUtils {

    fun format(preTimeMilliSeconds: Long, currentTimeMillionSeconds: Long): String {

        val currDate = Date(currentTimeMillionSeconds)
        val currentCalendar = Calendar.getInstance()
        currentCalendar.clear()
        currentCalendar.time = currDate

        val preDate = Date(preTimeMilliSeconds)
        val preCalendar = Calendar.getInstance()
        preCalendar.clear()
        preCalendar.time = preDate


        val is24Format = DateFormat.is24HourFormat(SogouApplication.application)

        var pattern = ""

        if (STDayUtils.isToday(preTimeMilliSeconds, currentTimeMillionSeconds)) {
            if(is24Format) {
                pattern = "HH:mm"
            } else {
                if (preCalendar.get(Calendar.HOUR_OF_DAY) < 12) {
                    pattern = "上午 hh:mm"
                } else {
                    pattern = "下午 hh:mm"
                }
            }

        } else if (STDayUtils.isYesterday(preTimeMilliSeconds, currentTimeMillionSeconds)) {
            if(is24Format) {
                pattern = "昨天 HH:mm"
            } else {
                if (preCalendar.get(Calendar.HOUR_OF_DAY) < 12) {
                    pattern = "昨天 上午hh:mm"
                } else {
                    pattern = "昨天 下午hh:mm"
                }
            }
        } else {
            if(is24Format) {
                pattern = "yyyy年MM月dd日 HH:mm"
            } else {
                if (preCalendar.get(Calendar.HOUR_OF_DAY) < 12) {
                    pattern = "yyyy年MM月dd日 上午hh:mm"
                } else {
                    pattern = "yyyy年MM月dd日 下午hh:mm"
                }
            }
        }

          return SimpleDateFormat(pattern).format(preDate)
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章