DateUtil
public class DateUtil {
/**
* 获取当前时间
* @return
*/
public static String getYMdHms(){
Date dt = new Date();
DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String datetime = df.format(dt);
return datetime;
}
/**
* 获取当前时间
* @return
*/
public static String getCurrYMdHms(){
Date dt = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String datetime = df.format(dt);
return datetime;
}
/**
* 获取30,35分钟前的时间
* @return
*/
public static Map<String,String> getCurrYMdHms30min(int scDelayTime){
Map<String,String> map = new HashMap<>();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//时间格式
//获取当前时间
Calendar pCal = Calendar.getInstance();
Calendar now =(Calendar)pCal.clone();
// nowTime=sf.format(now.getTime());
now.add(Calendar.MINUTE, -scDelayTime);
map.put("nowtime",sf.format(now.getTime()));
now.add(Calendar.MINUTE, -5);
map.put("nowtime2",sf.format(now.getTime()));
return map;
}
/**
* 获取当前时间的前一天
* @return
* @throws Exception
*/
public static String getYesterDay() throws Exception{
Date dt = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String day = df.format(dt);
Calendar c = Calendar.getInstance();
c.setTime(df.parse(day));
int day1 = c.get(Calendar.DATE);
c.set(Calendar.DATE, day1 - 1);
String dayAfter = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
return dayAfter;
}
/**
* 转换时间格式2019-02-261417
* @param dateTime
* @return
*/
public static String changeTimeFormat(String dateTime){
String time="";
if(StringUtils.isNotBlank(dateTime)){
String[] d=dateTime.split(" ");
String[] t=d[1].split(":");
time=d[0]+t[0]+t[1];
}
return time;
}
public static List<String> getBetweenDates(String start, String end) {
List<String> result = new ArrayList<String>();
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Date start_date = sdf.parse(start);
Date end_date = sdf.parse(end);
Calendar tempStart = Calendar.getInstance();
tempStart.setTime(start_date);
Calendar tempEnd = Calendar.getInstance();
tempEnd.setTime(end_date);
while (tempStart.before(tempEnd)||tempStart.equals(tempEnd)) {
result.add(sdf.format(tempStart.getTime()));
tempStart.add(Calendar.DAY_OF_YEAR, 1);
}
} catch (ParseException e) {
e.printStackTrace();
}
Collections.reverse(result);
return result;
}
/**
* 获取指定年月的第一天
* @return
*/
public static String getFirstDayOfMonth(String yearMonth) {
int year = Integer.parseInt(yearMonth.substring(0,4)); //年
int month = Integer.parseInt(yearMonth.substring(5,6)); //月
Calendar cal = Calendar.getInstance();
//设置年份
cal.set(Calendar.YEAR, year);
//设置月份
cal.set(Calendar.MONTH, month-1);
//获取某月最小天数
int firstDay = cal.getMinimum(Calendar.DATE);
//设置日历中月份的最小天数
cal.set(Calendar.DAY_OF_MONTH,firstDay);
//格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(cal.getTime());
}
/*
获取指定月份的最后一天
*/
public static String getLastDayOfMonth(String yearMonth) {
int year = Integer.parseInt(yearMonth.substring(0,4)); //年
int month = Integer.parseInt(yearMonth.substring(5,6)); //月
Calendar cal = Calendar.getInstance();
// 设置年份
cal.set(Calendar.YEAR, year);
// 设置月份
// cal.set(Calendar.MONTH, month - 1);
cal.set(Calendar.MONTH, month); //设置当前月的上一个月
// 获取某月最大天数
//int lastDay = cal.getActualMaximum(Calendar.DATE);
int lastDay = cal.getMinimum(Calendar.DATE); //获取月份中的最小值,即第一天
// 设置日历中月份的最大天数
//cal.set(Calendar.DAY_OF_MONTH, lastDay);
cal.set(Calendar.DAY_OF_MONTH, lastDay - 1); //上月的第一天减去1就是当月的最后一天
// 格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return sdf.format(cal.getTime());
}
/**
* 获取一天中间隔30分钟的所有时间点
*
* @return
*/
public static List<String> getTimeLag30Minute() throws Exception{
Date day=new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");
String s = df.format(day);
Date date = df.parse(s);
ArrayList<String> dates = new ArrayList<String>();
for (int i = 0; i < 124; i++) {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
// cal.add(Calendar.HOUR, 1);
cal.add(Calendar.MINUTE, 30);
date = cal.getTime();
String s1 = format.format(date);
dates.add(s1);
}
return dates;
}
//输出从当前时间获取整15分的时间
//比如 10:00 10:15 10:30 11:00
public static List<String> get30MinutesDate(String startDate)throws Exception {
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");//时间格式
SimpleDateFormat sf2 = new SimpleDateFormat("yyyyMMddHHmm");//时间格式
List<String>list=new ArrayList<>();
Date sDate=sf.parse(startDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(sDate);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//时间格式
int minutes = calendar.get(Calendar.MINUTE);// 得到分钟
int count = 0;
//时间不为00,15,30,45的情况
if (minutes != 0 && minutes != 30 ) {
//判断距离最近的00,15,30,45的分钟数
for (int i = minutes; i >= 0; i--) {
if (i % 30 == 0) {
break;
} else {
count++;
}
}
}
if(count>0){
count=(30-count);
}else{
count=30;
}
//获取距离最近的00,15,30,45的分钟数
// calendar.add(Calendar.MINUTE, -count);
calendar.add(Calendar.MINUTE, count);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
// System.out.println("[year: " + year + "][month: " + month + "][day: " + day + "][hour: " + hour + "][minute: " + minute + "]");
String currentTime = "";
currentTime = year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + 0; //拼接将年月日时分秒
try {
// System.out.println("currentTime: " + currentTime);
Date date = simpleDateFormat.parse(currentTime);
// System.out.println("date: " + date);
long millionSeconds = date.getTime(); // 时间转毫秒
long length=(System.currentTimeMillis()-millionSeconds)/(30*60*1000);
for (long i = 0; i <= length; i++) {
//获取length次从当前时间到每隔15分钟之后的时间
long dates = millionSeconds + i * (30 * 60 * 1000);
//获取length次从当前时间到每隔15分钟之前的时间
//long dates = millionSeconds - i * (15 * 60 * 1000);
// System.out.println(simpleDateFormat.format(new Date(dates)));
list.add(sf2.format(new Date(dates)));
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public static List<String> getBetweenTime(String starttime,String endtime)
{
List<String> betweenTime = new ArrayList<String>();
try
{
Date sdate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(starttime);
Date edate= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endtime);
SimpleDateFormat outformat = new SimpleDateFormat("yyyyMMdd");
Calendar sCalendar = Calendar.getInstance();
sCalendar.setTime(sdate);
int year = sCalendar.get(Calendar.YEAR);
int month = sCalendar.get(Calendar.MONTH);
int day = sCalendar.get(Calendar.DATE);
sCalendar.set(year, month, day, 0, 0, 0);
Calendar eCalendar = Calendar.getInstance();
eCalendar.setTime(edate);
year = eCalendar.get(Calendar.YEAR);
month = eCalendar.get(Calendar.MONTH);
day = eCalendar.get(Calendar.DATE);
eCalendar.set(year, month, day, 0, 0, 0);
while (sCalendar.before(eCalendar))
{
betweenTime.add(outformat.format(sCalendar.getTime()));
sCalendar.add(Calendar.DAY_OF_YEAR, 1);
}
betweenTime.add(outformat.format(eCalendar.getTime()));
}
catch(Exception e)
{
e.printStackTrace();
}
return betweenTime;
}
//格式转换
public static String transferFormat(String inTime) throws ParseException{
SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd HH");
SimpleDateFormat s2 = new SimpleDateFormat("yyyy-MM-dd");
Date tempDate =null;
String outTime = null;
tempDate = s1.parse(inTime);
outTime = s2.format(s2.parse(s1.format(tempDate)));
return outTime;
}
public static String transferFormat2(String inTime) throws ParseException{
SimpleDateFormat s1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat s2 = new SimpleDateFormat("yyyyMMdd");
Date tempDate =null;
String outTime = null;
tempDate = s1.parse(inTime);
// outTime = s2.format(s2.parse(s1.format(tempDate)));
outTime = s2.format(tempDate);
return outTime;
}
public static void listSort(List<Map> list) {
//用Collections这个工具类传list进来排序
Collections.sort(list, new Comparator<Map>() {
@Override
public int compare(Map o1, Map o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date dt1 = format.parse((String) o1.get("RECORD_TIME"));
Date dt2 = format.parse((String) o2.get("RECORD_TIME"));
if (dt1.getTime() > dt2.getTime()) {
return 1;//小的放前面
}else {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
}
public static void listSortDate(List<Map> list) {
//用Collections这个工具类传list进来排序
Collections.sort(list, new Comparator<Map>() {
@Override
public int compare(Map o1, Map o2) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
Date dt1 = format.parse((String) o1.get("RECORD_TIME"));
Date dt2 = format.parse((String) o2.get("RECORD_TIME"));
if (dt1.getTime() > dt2.getTime()) {
return 1;//小的放前面
}else {
return -1;
}
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
});
}
public static List<String> getBetweenHours(String str1, String str2){
List<String> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH");
try {
Date startdate= sdf.parse(str1);
Date enddate = sdf.parse(str2);
Calendar start = Calendar.getInstance();
start.setTime(startdate);
while (startdate.getTime()<=enddate.getTime()){
list.add(sdf.format(startdate));
start.add(Calendar.HOUR_OF_DAY,1);
startdate = start.getTime();
}
}catch (ParseException e){
e.printStackTrace();
}
return list;
}
public static List<String> getBetweenFiveMin(String str1, String str2){
String min50=str1.split(":")[1];
if(Integer.parseInt(min50)%5!=0){
str1=str1.split(":")[0]+":"+min50.substring(0,1)+"0";
}
String min51=str2.split(":")[1];
if(Integer.parseInt(min51)%5!=0){
str2=str2.split(":")[0]+":"+min51.substring(0,1)+"5";
}
List<String> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
Date startdate= sdf.parse(str1);
Date enddate = sdf.parse(str2);
Calendar start = Calendar.getInstance();
start.setTime(startdate);
while (startdate.getTime()<=enddate.getTime()){
list.add(sdf.format(startdate));
start.add(Calendar.MINUTE,5);
startdate = start.getTime();
}
}catch (ParseException e){
e.printStackTrace();
}
return list;
}
public static void main(String[] args){
List<String> list=getBetweenTime("2020-10-10 00:00:00","2020-10-16 23:59:59");
for(int i=0;i<list.size();i++) {
System.out.println("date:::" +list.get(i)+"==="+System.currentTimeMillis());
}
SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Calendar pCal = Calendar.getInstance();
String edata = "";
String sdata = "";
long time = 30*60*1000;
Date now = new Date();
Calendar now1 = (Calendar) pCal.clone();
now1.add(Calendar.HOUR_OF_DAY, -1);
edata = sf1.format(now1.getTime());
sdata = sf1.format(new Date(now1.getTime().getTime()-time));
edata = edata + ":59";
sdata = sdata + ":00";
System.out.println(edata+"=======edata==========sdata=="+sdata);
List<String> mins = getBetweenFiveMin("2020-12-16 14:00:00","2020-12-16 14:30:59");
for(String kk:mins){
System.out.println("=======edata====66666======sdata=="+kk);
}
String str0="round(avg*{devgroupnum},0)";
String format=str0.substring(6,9);
String formatrex=str0.substring(9,10);
String round=str0.split(",")[1].replace(")","");
double money = 399.7555;
DecimalFormat df=new DecimalFormat("#");
System.out.println(Double.parseDouble(df.format(money)));
double d1=0.0;
double d2=0.0;
double f=d1/d2;
System.out.println("--------------"+f);
//System.out.println(format+"==============="+formatrex+"===="+round+"=="+it+"=="+kk);
}
}