package com.zuji.entrance.utils;
import com.tantu.module.common.file.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
/**
* Created by fangyc on 2018/7/20.
*/
public class DateUtils {
/**
* 判断给定字符串时间是否为今日(效率不是很高,不过也是一种方法)
* @param sdate
* @return boolean
*/
// public static boolean isToday(String sdate){
// boolean b = false;
// Date time = toDate(sdate);
// Date today = new Date();
// if(time != null){
// String nowDate = dateFormater2.get().format(today);
// String timeDate = dateFormater2.get().format(time);
// if(nowDate.equals(timeDate)){
// b = true;
// }
// }
// return b;
// }
/**
* 将字符串转位日期类型
*
* @param sdate
* @return
*/
public static Date toDate(String sdate) {
try {
return dateFormater.get().parse(sdate);
} catch (ParseException e) {
return null;
}
}
private final static ThreadLocal<SimpleDateFormat> dateFormater = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
};
private final static ThreadLocal<SimpleDateFormat> dateFormater2 = new ThreadLocal<SimpleDateFormat>() {
@Override
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd");
}
};
private static ThreadLocal<SimpleDateFormat> DateLocal = new ThreadLocal<SimpleDateFormat>();
/**
* 判断是否为今天(效率比较高)
*
* @param day 传入的 时间 "2016-06-28 10:10:30" "2016-06-28" 都可以
* @return true今天 false不是
* @throws ParseException
*/
public static boolean IsToday(String day) throws ParseException {
Calendar pre = Calendar.getInstance();
Date predate = new Date(System.currentTimeMillis());
pre.setTime(predate);
Calendar cal = Calendar.getInstance();
Date date = getDateFormat().parse(day);
cal.setTime(date);
if (cal.get(Calendar.YEAR) == (pre.get(Calendar.YEAR))) {
int diffDay = cal.get(Calendar.DAY_OF_YEAR)
- pre.get(Calendar.DAY_OF_YEAR);
if (diffDay == 0) {
return true;
}
}
return false;
}
/**
* 判断是否为昨天(效率比较高)
*
* @param day 传入的 时间 "2016-06-28 10:10:30" "2016-06-28" 都可以
* @return true今天 false不是
* @throws ParseException
*/
public static boolean IsYesterday(String day) throws ParseException {
Calendar pre = Calendar.getInstance();
Date predate = new Date(System.currentTimeMillis());
pre.setTime(predate);
Calendar cal = Calendar.getInstance();
Date date = getDateFormat().parse(day);
cal.setTime(date);
if (cal.get(Calendar.YEAR) == (pre.get(Calendar.YEAR))) {
int diffDay = cal.get(Calendar.DAY_OF_YEAR)
- pre.get(Calendar.DAY_OF_YEAR);
if (diffDay == -1) {
return true;
}
}
return false;
}
public static SimpleDateFormat getDateFormat() {
if (null == DateLocal.get()) {
DateLocal.set(new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA));
}
return DateLocal.get();
}
public static String TodayOrYesterday(String day) throws ParseException {
String dayStr;
Calendar pre = Calendar.getInstance();
Date predate = new Date(System.currentTimeMillis());
pre.setTime(predate);
Calendar cal = Calendar.getInstance();
Date date = getDateFormat().parse(day);
cal.setTime(date);
if (cal.get(Calendar.YEAR) == (pre.get(Calendar.YEAR))) {
int diffDay = cal.get(Calendar.DAY_OF_YEAR)
- pre.get(Calendar.DAY_OF_YEAR);
if (diffDay == 0) {
dayStr = "今天";
} else if (diffDay == -1) {
dayStr = "昨天";
} else {
String[] str = day.split("-");
dayStr = str[1] + "月" + str[2] + "日";
}
} else {
String[] str = day.split("-");
dayStr = str[1] + "月" + str[2] + "日";
}
return dayStr;
}
}
感谢:
android 判断指定日期是否为今天昨天
网友评论