1.SimpleDateFormat
主要就是用来规范我们输出的时间日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
2.获取当前时间的毫秒值
//Demo1:
Date date = new Date();
System.out.println(date.getTime());
//Demo2:
System.out.println(System.currentTimeMillis());
//Demo3:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String current = sdf.format(System.currentTimeMillis());
System.out.println(current);
3.日期转字符串、字符串转日期
// An highlighted block
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
//1、日期转字符串
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
String dateStringParse = sdf.format(date);
System.out.println(dateStringParse);
//2、字符串转日期
String dateString = "2022-02-22 22:22:22";
Date dateParse = sdf.parse(dateString);
System.out.println(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
4.输入时间,转为日期
// An highlighted block
public static String getFormatBySeconds(long seconds) {
String timeStr = seconds + "秒";
if (seconds > 60) {
long second = seconds % 60;
long min = seconds / 60;
timeStr = min + "分" + second + "秒";
if (min > 60) {
min = (seconds / 60) % 60;
long hour = (seconds / 60) / 60;
timeStr = hour + "小时" + min + "分" + second + "秒";
if (hour > 24) {
hour = ((seconds / 60) / 60) % 24;
long day = (((seconds / 60) / 60) / 24);
timeStr = day + "天" + hour + "小时" + min + "分" + second + "秒";
}
}
}
return timeStr;
}
5.计算时间差
// An highlighted block
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//最好从DB查
String previousTime = "2022-01-01 01:01:01";
Calendar calender = Calendar.getInstance();
long currentDate = calendar.getTime().getTime();
try {
long previousDate = sdf.parse(previousTime).getTime();
long betweenDate = (currentDate - previousDate) / (1000 * 60 * 60 * 24);
System.out.print(betweenDate);
} catch (ParseException e) {
e.printStackTrace();
}
6.获取两个时间段中间的数据
public void checkTime() {
List<ChangeIntegrator> finalIntegratorList = new ArrayList<>();
Timestamp start = new Timestamp(System.currentTimeMillis());
/**
* Date previousDate =
* jdbcTemplateTwo.queryForObject(timeDao.queryPreviousTime(), Date.class);
* Timestamp previous = new Timestamp(previousDate.getTime());
*/
// 测试专用,两天前
Timestamp previous = new Timestamp(System.currentTimeMillis() - 1000 * 60 * 60 * 24*2);
// find all change integrator
List<ChangeIntegrator> changeIntegratorList = dataMapperService
.getChangeIntegrator(commonDao.changeIntegrator());
for (ChangeIntegrator changeIntegrator : changeIntegratorList) {
Timestamp changeTime = new Timestamp(changeIntegrator.getEffTime().getTime());
if (changeTime.before(start) && changeTime.after(previous)) {
finalIntegratorList.add(changeIntegrator);
}
}
System.out.println(finalIntegratorList.size());
}