说明
Java获取时间点有:Date、Calendar、LocalDateTime。有个需求,根据某个时间获取所属的某个时刻点。
代码案例
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
// 获取时间
Date date = new Date();
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat1.format(date));
// 获取时间
Calendar calendar = Calendar.getInstance();
SimpleDateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormat2.format(calendar.getTime()));
// 获取时间
LocalDateTime localDateTime = LocalDateTime.now();
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormatter.format(localDateTime));
// 获取时间
Calendar cal = Calendar.getInstance();
int y = cal.get(Calendar.YEAR);
int m = cal.get(Calendar.MONTH);
int d = cal.get(Calendar.DATE);
int h = cal.get(Calendar.HOUR_OF_DAY);
int mi = cal.get(Calendar.MINUTE);
int s = cal.get(Calendar.SECOND);
System.out.println("现在时刻:" + y + "年" + m + "月" + d + "日" + h + "时" + mi + "分" + s + "秒");
}
}
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
import java.util.Date;
public final class DateUtils {
/**
* 获取当前时间的整点小时时间
*
* @return
*/
public static Date getCurrentHourTime() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* 获取当前时间的整点刻时间
*
* @return
*/
public static Date getCurrentQuarterTime() {
LocalDateTime localDateTime = LocalDateTime.now();
int minute = localDateTime.getMinute();
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, (minute / 15) * 15);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* 获取当前时间的整点刻时间
*
* @return
*/
public static Date getCurrentQuarterTime(LocalDateTime localDateTime) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.MINUTE, (localDateTime.getMinute() / 15) * 15);
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* 获取当前时间的整点小时时间
*
* @return
*/
public static Date getCurrentMinuteTime() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND, 0);
return calendar.getTime();
}
/**
* @param date
* @return
*/
public static String format(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date);
}
public static void main(String[] args) {
Date currentHourTime = getCurrentHourTime();
System.out.println("整小时时间:" + currentHourTime);
System.out.println("整小时时间:" + format(currentHourTime));
Date currentQuarterTime = getCurrentQuarterTime();
System.out.println("整刻钟时间:" + format(currentQuarterTime));
System.out.println("整刻钟时间:" + format(currentQuarterTime));
Date currentQuarterTime2 = getCurrentQuarterTime(LocalDateTime.now());
System.out.println("整刻钟时间:" + format(currentQuarterTime2));
System.out.println("整刻钟时间:" + format(currentQuarterTime2));
Date currentMinuteTime = getCurrentMinuteTime();
System.out.println("整分钟时间:" + currentMinuteTime);
System.out.println("整分钟时间:" + format(currentMinuteTime));
}
}