美文网首页
Java获取当前日期开始结束时间

Java获取当前日期开始结束时间

作者: 烟囱 | 来源:发表于2018-03-26 11:46 被阅读0次

    贴一个类,可以获得今天和昨天的开始和结束时间。时间可以是时间戳(毫秒数),也可以是字符串(设为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;
    }
    
    }

    相关文章

      网友评论

          本文标题:Java获取当前日期开始结束时间

          本文链接:https://www.haomeiwen.com/subject/eyzlcftx.html