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