import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class TimeTransUtil {
/**
* 时间转换
* Integer to String
*/
public static String dateIntegerToDateString(Integer time){
long dateTime = (long)time * 1000;
Date date = new Date(dateTime);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sdf.format(date);
}
/**
* 时间转换
* String to Integer
* @param time
* @return
*/
public static Integer getTimeInteger(String time){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Integer dateTime = null;
try {
Date date = sdf.parse(time);
dateTime = (int)(date.getTime() / 1000);
} catch (ParseException e) {
e.printStackTrace();
}
return dateTime;
}
public static String filter(String character) {
character = character.replaceAll("[^(0-9]", "");
return character;
}
/**
* 获取某一段时间的周一时间(年)
*
* @param yearData
* @return
*/
public static List<Integer> lastYear(Integer yearData) {
List<Integer> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
String data = dateIntegerToDateString(yearData);
int year = Integer.parseInt(data.substring(0, 4));
int month = Integer.parseInt(data.substring(5, 7));
int date = Integer.parseInt(data.substring(8, 10));
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
c_begin.set(year - 1, month - 1, date); //Calendar的月从0-11,所以4月是3.
c_end.set(year, month - 1, date); //Calendar的月从0-11,所以5月是4.
c_end.add(Calendar.DAY_OF_WEEK, 1); //结束日期下滚一天是为了包含最后一天
while (c_begin.before(c_end)) {
if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
String week1 = sdf.format(new java.sql.Date(c_begin.getTime().getTime()));
Integer weekDate = MyDateUtil.getTimeInteger(week1);
list.add(weekDate);
}
c_begin.add(Calendar.DAY_OF_WEEK, 1);
}
return list;
}
public static void main(String[] args) {
List<Integer> list = lastYear(1595001600);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
list.forEach(ob -> {
long dateTime = (long) ob * 1000;
Date lastDate =new Date(dateTime);
//获取上周周一时间
String lastWeekCrea = sdf.format(lastDate);
System.out.println(lastWeekCrea+"****");
});
}
/**
* 获取周日的时间
*
* @param yearData
* @param OldYearData
* @return
*/
public static List<Integer> lastOldYear(Integer yearData, Integer OldYearData) {
List<Integer> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
String data = dateIntegerToDateString(yearData);
int year = Integer.parseInt(data.substring(0, 4));
int month = Integer.parseInt(data.substring(5, 7));
int date = Integer.parseInt(data.substring(8, 10));
String dataOld = dateIntegerToDateString(OldYearData);
int oldYear = Integer.parseInt(dataOld.substring(0, 4));
int oldMonth = Integer.parseInt(dataOld.substring(5, 7));
int oldDate = Integer.parseInt(dataOld.substring(8, 10));
Calendar c_begin = new GregorianCalendar();
Calendar c_end = new GregorianCalendar();
c_begin.set(oldYear, month - 1, date); //Calendar的月从0-11,所以4月是3.
// 截至时间
c_end.set(oldYear, oldMonth - 1, oldDate); //Calendar的月从0-11,所以5月是4.
c_end.add(Calendar.DAY_OF_YEAR, 1); //结束日期下滚一天是为了包含最后一天
while (c_begin.before(c_end)) {
if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
String week = sdf.format(new java.sql.Date(c_begin.getTime().getTime()));
Integer weekDate = MyDateUtil.getTimeInteger(week);
list.add(weekDate);
}
c_begin.add(Calendar.DAY_OF_YEAR, 1);
}
return list;
}
/**
* 获取某一天的最早时间
*
* @param date1
* @return
*/
public static Integer getOldDate(Integer date1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
long dateTime = (long) date1 * 1000;
Date date = new Date(dateTime);
return MyDateUtil.getTimeInteger(sdf.format(date));
}
/**
* 获取上周周一时间 00:00:00 时间
*/
public static Integer getLastWeek(Integer date1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
long dateTime = (long) date1 * 1000;
Date lastDate = MyDateUtil.geLastWeekMonday(new Date(dateTime));
//获取上周周一时间
String lastWeekCrea = sdf.format(lastDate);
Integer lastChangeCreateEndTime = MyDateUtil.getTimeInteger(lastWeekCrea);
return lastChangeCreateEndTime;
}
/**
* 获取下周周一时间 00:00:00 时间
*/
public static Integer getNextLastWeek(Integer date1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
long dateTime = (long) date1 * 1000;
Date lastDate = MyDateUtil.getNextWeekMonday(new Date(dateTime));
//获取上周周一时间
String lastWeekCrea = sdf.format(lastDate);
Integer lastChangeCreateEndTime = MyDateUtil.getTimeInteger(lastWeekCrea);
return lastChangeCreateEndTime;
}
/**
* 获取本周周一时间 00:00:00 时间
*/
public static Integer getThisLastWeek(Integer date1) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
long dateTime = (long) date1 * 1000;
Date lastDate = MyDateUtil.getThisWeekMonday(new Date(dateTime));
//获取上周周一时间
String lastWeekCrea = sdf.format(lastDate);
Integer lastChangeCreateEndTime = MyDateUtil.getTimeInteger(lastWeekCrea);
return lastChangeCreateEndTime;
}
}
Java 获取时间 与时间互转 哈喽雨点
最新推荐文章于 2024-07-14 14:59:27 发布