java 获取昨天,上个星期一,本月开始时间戳,怎么写呢?

java 获取昨天,上个星期一,本月开始时间戳,怎么写呢?

阅读 9.4k
5 个回答

给你点思路

//获得当天0点时间 
public static int getTimesmorning(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.HOUR_OF_DAY, 0); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MINUTE, 0); 
cal.set(Calendar.MILLISECOND, 0); 
return (int) (cal.getTimeInMillis()/1000); 
} 
//获得当天24点时间 
public static int getTimesnight(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(Calendar.HOUR_OF_DAY, 24); 
cal.set(Calendar.SECOND, 0); 
cal.set(Calendar.MINUTE, 0); 
cal.set(Calendar.MILLISECOND, 0); 
return (int) (cal.getTimeInMillis()/1000); 
} 
//获得本周一0点时间 
public static int getTimesWeekmorning(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
return (int) (cal.getTimeInMillis()/1000); 
} 
//获得本周日24点时间 
public static int getTimesWeeknight(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
return (int) ((cal.getTime().getTime()+ (7 * 24 * 60 * 60 * 1000))/1000); 
} 
//获得本月第一天0点时间 
public static int getTimesMonthmorning(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMinimum(Calendar.DAY_OF_MONTH)); 
return (int) (cal.getTimeInMillis()/1000); 
} 
//获得本月最后一天24点时间 
public static int getTimesMonthnight(){ 
Calendar cal = Calendar.getInstance(); 
cal.set(cal.get(Calendar.YEAR),cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0,0); 
cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH)); 
cal.set(Calendar.HOUR_OF_DAY, 24); 
return (int) (cal.getTimeInMillis()/1000); 
}

Joda time,详细API可查阅官网文档或搜索引擎。

        //今天
        LocalDate ld = LocalDate.now();

        //昨天
        ZonedDateTime zdt = ld.minusDays(1).atStartOfDay(ZoneId.systemDefault());
        Instant instant = zdt.toInstant();

        //上周一
        LocalDate ld2 = ld.with(TemporalAdjusters.previous(DayOfWeek.MONDAY));
        ZonedDateTime zdt2 = ld2.atStartOfDay(ZoneId.systemDefault());
        Instant instant2 = zdt2.toInstant();

        //本月1号
        LocalDate ld3 = ld.withDayOfMonth(1);
        ZonedDateTime zdt3 = ld3.atStartOfDay(ZoneId.systemDefault());
        Instant instant3 = zdt3.toInstant();

试试DateTime的API

推荐问题