贴一个类,可以获得今天和昨天的开始和结束时间。时间可以是时间戳(毫秒数),也可以是字符串(设为yyyy-MM-dd HH:mm:ss)格式。
要点:当前日期要先加TimeZone.getDefault().getRawOffset()再减去,否则,在8:00前计算就会得到前一天而不是当日。
public class DateStrUtil {
//每天的毫秒数
private static long day = 1000 * 60 * 60 * 24;
//日期字符串的格式
private static DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
/**
* 返回前一天的 00:00:00 字符串格式
*
* @return
*/
public static String getLastDayStart() {
return format.format(getTodayStartMills() - day);
}
/**
* 返回前一天的 23:59:59 字符串格式
*
* @return
*/
public static String getLastDayEnd() {
return format.format(getTodayStartMills() - 1);
}
/**
* 返回当日的 00:00:00 字符串格式
*
* @return
*/
public static String getTodayStart() {
long zero = getTodayStartMills();
return format.format(zero);
}
/**
* 返回当日的 23:59:59 字符串格式
*
* @return
*/
public static String getTodayEnd() {
return format.format(getTodayStartMills() + day - 1);
}
/**
* 返回当日的 00:00:00 毫秒格式
*
* @return
*/
public static long getTodayStartMills() {
long current = System.currentTimeMillis();
long zero = ( (current + TimeZone.getDefault().getRawOffset())/ day * day ) - TimeZone.getDefault().getRawOffset();
return zero;
}
/**
* 返回前一天的 00:00:00 毫秒格式
*
* @return
*/
public static long getLastDayStartMills() {
return getTodayStartMills() - day;
}
}
网友评论