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);
}});