java 关于时间的函数

1,981 阅读1分钟

1。 判断当前的时间戳是否是昨天

public static boolean isYesterday(long timestamp){

Calendar c = Calendar.getInstance();
clearCalendar(c, Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND);
c.add(Calendar.DAY_OF_MONTH, -1);
long firstOfDay = c.getTimeInMillis(); // 昨天最早时间

c.setTimeInMillis(timestamp);
clearCalendar(c, Calendar.HOUR_OF_DAY, Calendar.MINUTE, Calendar.SECOND, Calendar.MILLISECOND); // 指定时间戳当天最早时间

return firstOfDay == c.getTimeInMillis();

}

private static void clearCalendar(Calendar c, int... fields) {

for (int f : fields) {
     c.set(f, 0);
}

}

这是官方jdk中的函数体现

  1. 获取当前月和日的时间点

private String getDateTime(long timeStamps){

    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(timeStamps);
    StringBuilder builder = new StringBuilder();
    builder.append(calendar.get(Calendar.MONTH)+1).append("月");
    builder.append(calendar.get(Calendar.DAY_OF_MONTH)).append("日");
    return builder.toString();
}
  1. 获取周几的时间点

private String getWeekDate(long time) {

    String Week = "周";

    Calendar c = Calendar.getInstance();
    c.setTime(new Date(time));

    if (c.get(Calendar.DAY_OF_WEEK) == 1) {
        Week += "天";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 2) {
        Week += "一";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 3) {
        Week += "二";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 4) {
        Week += "三";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 5) {
        Week += "四";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 6) {
       Week += "五";
    }
    if (c.get(Calendar.DAY_OF_WEEK) == 7) {
       Week += "六";
 }
     return Week;
}

4. 根据年月日来获取时间戳
private long getCalendarData(){
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
    Date date = null;
    try {
        date = df.parse("2017-08-07");
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Calendar cal = Calendar.getInstance();
    cal.setTime(date);
    return cal.getTimeInMillis();
}

5. 判断是否是本周

public static boolean isThisWeek(long time)
{
	Calendar calendar = Calendar.getInstance();
    int currentWeek = calendar.get(Calendar.WEEK_OF_YEAR);
    calendar.setTime(new Date(time));
    int paramWeek = calendar.get(Calendar.WEEK_OF_YEAR);
    if(paramWeek==currentWeek){
 	   return true;
    }
    return false;
}

//判断选择的日期是否是本月
public static boolean isThisMonth(long time)
{
	 return isThisTime(time,"yyyy-MM");
}

private static boolean isThisTime(long time,String pattern) {
	Date date = new Date(time);
     SimpleDateFormat sdf = new SimpleDateFormat(pattern);
     String param = sdf.format(date);//参数时间
     String now = sdf.format(new Date());//当前时间
     if(param.equals(now)){
  	   return true;
     }
     return false;
}

//判断选择的日期是否是今天
public static boolean isToday(long time)
{
   return isThisTime(time,"yyyy-MM-dd");
}