package com.doctor.java.time;  
  
import java.text.SimpleDateFormat;  
import java.time.LocalDate;  
import java.time.LocalDateTime;  
import java.time.YearMonth;  
import java.time.ZoneId;  
import java.time.ZonedDateTime;  
import java.util.Date;  
  
/** 
 * 得到一个月的开始时间与结束时间 ( 
 *  
 * 返回Date类型,因为mongoDB ) 
 *  
 * @author sdcuike 
 * 
 * @time 2016年1月2日 下午9:16:11 
 */  
public class TimeBeginAndEndOFaMonth {  
  
    public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  
    public static void main(String[] args) {  
        int year = 2016, month = 3;  
        Date beginTime = getBeginTime(year, month);  
        System.out.println(sdf.format(beginTime));  
  
        Date endTime = getEndTime(year, month);  
        System.out.println(sdf.format(endTime));  
    }  
  
    public static Date getBeginTime(int year, int month) {  
        YearMonth yearMonth = YearMonth.of(year, month);  
        LocalDate localDate = yearMonth.atDay(1);  
        LocalDateTime startOfDay = localDate.atStartOfDay();  
        ZonedDateTime zonedDateTime = startOfDay.atZone(ZoneId.of("Asia/Shanghai"));  
  
        return Date.from(zonedDateTime.toInstant());  
    }  
  
    public static Date getEndTime(int year, int month) {  
        YearMonth yearMonth = YearMonth.of(year, month);  
        LocalDate endOfMonth = yearMonth.atEndOfMonth();  
        LocalDateTime localDateTime = endOfMonth.atTime(23, 59, 59, 999);  
        ZonedDateTime zonedDateTime = localDateTime.atZone(ZoneId.of("Asia/Shanghai"));  
        return Date.from(zonedDateTime.toInstant());  
    }  
  
}  


感谢:http://blog.csdn.net/doctor_who2004/article/details/50449528

欢迎留言