1.获取当天23:59:59时间
Calendar calendar2 = Calendar.getInstance();
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH),
23, 59, 59);
Date endOfDate = calendar2.getTime();
SimpleDateFormat SDF= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = SDF.format(endOfDate);
System.out.println(format);
2.【cron表达式装换成时间格式】
package web.cron;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.quartz.CronExpression;
public class CronExpParser {
/**
* @方法名:parser
* @方法描述【cron表达式装换成时间格式】
* @param cronExpression cron表达式
* @return
* @修改描述【修改描述】
* @版本:1.0
* @创建人:Administrator
* @创建时间:2018年8月17日 下午2:46:43
* @修改人:Administrator
* @修改时间:2018年8月17日 下午2:46:43
*/
public static List<String> parser(String cronExpression) {
List<String> result = new ArrayList<String>();
if (cronExpression == null || cronExpression.length() < 1) {
return result;
} else {
CronExpression exp = null;
try {
exp = new CronExpression(cronExpression);
} catch (ParseException e) {
e.printStackTrace();
return result;
}
Calendar calendar = Calendar.getInstance();
String cronDate = calendar.get(Calendar.YEAR) + "-" + (calendar.get(Calendar.MONTH) + 1) + "-" + calendar.get(Calendar.DATE);
String sStart = cronDate + " 00:00:00";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dStart = null;
Date dEnd = null;
try {
dStart = sdf.parse(sStart);
calendar.setTime(dStart);
calendar.add(Calendar.DATE, 1);
dEnd = calendar.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
Date dd = new Date();
dd = exp.getNextValidTimeAfter(dd);
while (dd.getTime() < dEnd.getTime()) {
result.add(sdf.format(dd));
dd = exp.getNextValidTimeAfter(dd);
}
exp = null;
}
return result;
}
public static void main(String[] args) {
String CRON_EXPRESSION = "0/30 * * * * ? *";
System.out.println(CRON_EXPRESSION);
List<String> lTime = new ArrayList<String>();
lTime = CronExpParser.parser(CRON_EXPRESSION);
for (int i = 0; i < lTime.size(); i++) {
System.out.println(lTime.get(i));
}
}
}
结果为:如下图:
3.java 时间转换Tue, 29 Jan 2019 09:26:29 GMT转换为 (标准时间)时间格式转换
package web.String;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo8 {
public static void main(String[] args) {
String time = "Tue, 29 Jan 2019 09:26:29 GMT";
Date date = new Date(time);
SimpleDateFormat dateformat1=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
time=dateformat1.format(date);
System.out.println(time);
}
}
结果如图:
4.随机生成字符串以及随机抽取字符串
package web.suiji;
import java.util.Random;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
public class RandomUtil {
public static final String ALLCHAR = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String LETTERCHAR = "abcdefghijkllmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static final String NUMBERCHAR = "0123456789";
/**
* 返回一个定长的随机字符串(只包含大小写字母、数字)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public static String generateString(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(ALLCHAR.charAt(random.nextInt(ALLCHAR.length())));
}
return sb.toString();
}
/**
* 返回一个定长的随机纯字母字符串(只包含大小写字母)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public static String generateMixString(int length) {
StringBuffer sb = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
sb.append(ALLCHAR.charAt(random.nextInt(LETTERCHAR.length())));
}
return sb.toString();
}
/**
* 返回一个定长的随机纯大写字母字符串(只包含大小写字母)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public static String generateLowerString(int length) {
return generateMixString(length).toLowerCase();
}
/**
* 返回一个定长的随机纯小写字母字符串(只包含大小写字母)
*
* @param length
* 随机字符串长度
* @return 随机字符串
*/
public static String generateUpperString(int length) {
return generateMixString(length).toUpperCase();
}
/**
* 生成一个定长的纯0字符串
*
* @param length
* 字符串长度
* @return 纯0字符串
*/
public static String generateZeroString(int length) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
sb.append('0');
}
return sb.toString();
}
/**
* 根据数字生成一个定长的字符串,长度不够前面补0
*
* @param num
* 数字
* @param fixdlenth
* 字符串长度
* @return 定长的字符串
*/
public static String toFixdLengthString(long num, int fixdlenth) {
StringBuffer sb = new StringBuffer();
String strNum = String.valueOf(num);
if (fixdlenth - strNum.length() >= 0) {
sb.append(generateZeroString(fixdlenth - strNum.length()));
} else {
throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth
+ "的字符串发生异常!");
}
sb.append(strNum);
return sb.toString();
}
/**
* 每次生成的len位数都不相同
*
* @param param
* @return 定长的数字
*/
public static int getNotSimple(int[] param, int len) {
Random rand = new Random();
for (int i = param.length; i > 1; i--) {
int index = rand.nextInt(i);
int tmp = param[index];
param[index] = param[i - 1];
param[i - 1] = tmp;
}
int result = 0;
for (int i = 0; i < len; i++) {
result = result * 10 + param[i];
}
return result;
}
/**
* 随机生成字符串(只有字母和数字)
* @param args
*/
/*public static void main(String[] args) {
System.out.println("返回一个定长的随机字符串(只包含大小写字母、数字):" + generateString(10));
System.out
.println("返回一个定长的随机纯字母字符串(只包含大小写字母):" + generateMixString(10));
System.out.println("返回一个定长的随机纯大写字母字符串(只包含大小写字母):"
+ generateLowerString(10));
System.out.println("返回一个定长的随机纯小写字母字符串(只包含大小写字母):"
+ generateUpperString(10));
System.out.println("生成一个定长的纯0字符串:" + generateZeroString(10));
System.out.println("根据数字生成一个定长的字符串,长度不够前面补0:"
+ toFixdLengthString(123, 10));
int[] in = { 1, 2, 3, 4, 5, 6, 7 };
System.out.println("每次生成的len位数都不相同:" + getNotSimple(in, 3));
}*/
/**
* java演示倒计时
*
*/
public static int time = 5;
public static Calendar c;
public static long endTime;
public static Date date;
public static long startTime;
public static long midTime;
/**
* 抽取指定姓名中的名字
* @param args
*/
public static void main(String[] args) {
c = Calendar.getInstance();
c.set(2017, 4, 17, 0, 0, 0);// 注意月份的设置,0-11表示1-12月
// c.set(Calendar.YEAR, 2017);
// c.set(Calendar.MONTH, 4);
// c.set(Calendar.DAY_OF_MONTH, 17);
// c.set(Calendar.HOUR_OF_DAY, 0);
// c.set(Calendar.MINUTE, 0);
// c.set(Calendar.SECOND, 0);
endTime = c.getTimeInMillis();
date = new Date();
startTime = date.getTime();
midTime = (endTime - startTime) / 1000;
time1();//方式一
//time2();// 方式二
// time3();//方式三
//定义人名数组
String [] name = {"张三","李四","王五","八神庵","不知火舞","大蛇","景天","唐雪见","李逍遥","赵灵儿"};
//随机生成数组下标、
int num = (int)(Math.random() * 1000);
//对生成的随机数进行判断,如果小于数组下标,就跳出循环
while (num>name.length-1) {
if (num<=name.length-1) {
break;
}
num = (int)(Math.random() * 1000);
}
//将数组下标设置成随机数,就可以实现人名的随机抽取
System.out.println("被抽到的同学是:"+name[num]);
}
// public static void main(String[] args) {
// }
/**
* 方式一: 给定时长倒计时
*/
private static void time1() {
while (time > 0) {
time--;
try {
Thread.sleep(1000);
int hh = time / 60 / 60 % 60;
int mm = time / 60 % 60;
int ss = time % 60;
System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
5.查询集合中不连续的数的个数
package web.zizeng;
import java.util.ArrayList;
import java.util.List;
public class Zizeng {
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
List<Integer> list4 = new ArrayList<Integer>();
/*list.add(65529);
list.add(1);
*/
//list.add(65515);//16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
/*list.add(65531);
list.add(65532);
list.add(65533);*/
list.add(65534);
list.add(65535);
list.add(1);
list.add(2);
list.add(3);//缺少4,5,6,7,8,9
list.add(10);
list.add(11);
Integer sum = 0;
Integer integer = 0;
//找出该传感器的delection_time的集合中不连续的数有多少个
for (int i = 0; i < list.size()-1; i++) {
if (list.get(i) < 65535 && (list.get(i + 1)) > (list.get(i))) {
if ((list.get(i + 1)) - (list.get(i)) == 1) {
// 连续的数
continue;
}
int a = list.get(i + 1);
int b = list.get(i);
if ((a - b) != 1) {
// 不连续的数
int c = (a - b) - 1;
sum = sum + c;
list4.add(sum);
}
// 获取list1集合中最后一个元素:==总的不连续的个数
integer = list4.get(list4.size() - 1);
}
if ((list.get(i + 1)) < (list.get(i))) {
if ((list.get(i + 1)) - (list.get(i)) == -65534) {
// 进入该判断说明是连续的
continue;
} else {
int a = list.get(i + 1);
int b = list.get(i);
// 不连续的数
int c = (b - a);
int x = 65535 - c - 1;
sum = sum + x;
list4.add(sum);
}
// 获取list1集合中最后一个元素:==总的不连续的个数
integer = list4.get(list4.size() - 1);
}
if (list.get(i) == 65535) {
continue;
}
}
//输出最后一个元素
System.out.println(integer);
/*for (Integer in : list4) {
System.out.println(in);
}*/
}
}
6.文件上传Controller实例:
package web.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import web.mapping.student;
import web.service.SecondService;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
@Controller
@RequestMapping("/second")
public class UplodesController {
@Autowired
private SecondService secondservice;
//二级标题发布
@RequestMapping(value = "/secondsave",method = RequestMethod.POST)
public String secondsave(@RequestParam(value = "file1") MultipartFile file, HttpServletRequest request, student second) {
try {
request.setAttribute("files", file);
//上传后的地址,注意("/upload")是表示文件上传后的目标文件夹
String realPath = request.getSession().getServletContext().getRealPath("/uplode");
System.out.println("打印文件上传的路径"+realPath);
//获取文件名
String filename = file.getOriginalFilename();
//获取文件后缀名
String extensionname = filename.substring(filename.lastIndexOf(".") + 1);
//给上传的文件起别名,有很多种方式
String newFilename=String.valueOf(System.currentTimeMillis())+"."+extensionname;
//创建File对象,传入目标路径参数,和新的文件别名
File dir=new File(realPath,newFilename);
if (!dir.exists()){//如果dir代表的文件不存在,则创建它,
dir.mkdirs();//
}
//如果存在则直接执行下面操作
file.transferTo(dir);//将上传的实体文件复制到指定目录upload下
second.setTupian(newFilename);//将文件名赋值给实体类,然后一并存到数据库
secondservice.secondSave(second);//调用后台方法,将对象存进数据库
System.out.println("测试是否执行完毕");
request.setAttribute("files1", realPath);
} catch (IOException e) {
e.printStackTrace();
}
return "succes.jsp";//执行完毕,返回一个逻辑视图
}
}
7.集合排序
a. 当List集合中是List/List类型时,我们直接用 Collections.sort(list);
b.当List集合中是List<对象>时,我们要对对象中的某一个元素进行排序,如下:
Collections.sort(list, new Comparator<对象>() {
public int compare(对象 o1, 对象 o2) {
return o2.get属性.compareTo(o1.get属性());
}});
c.对map集合进行排序:
Map<String, String> map = new TreeMap<String, String>(
new Comparator<String>() {
public int compare(String obj1, String obj2) {
// 降序排序
return obj2.compareTo(obj1);
}});