昨天、今天和明天
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)
}
}