1、自定义格式取当期日期:
public String getMyDate(int type) { String date=""; Calendar cal = Calendar.getInstance(); int pm_am=cal.get(Calendar.AM_PM); int hour=cal.get(Calendar.HOUR); if(pm_am==Calendar.PM) hour+=12; switch(type) { case 1: //yyyy-mm-dd
date+=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE); break; case 2: //yyyy-mm-dd hh:mi:ss
date+=cal.get(Calendar.YEAR)+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE) +" "+hour+":"+cal.get(Calendar.MINUTE)+":"+ cal.get(Calendar.SECOND); break; default: date+=null; } return date; }
2、计算两时间差(天):
/* * Method:输出两日期差,单位(天) */ public long getQuot(String time1, String time2) { long quot = 0; SimpleDateFormat ft = new SimpleDateFormat("yyyy-MM-dd"); try { Date date1 = ft.parse( time1 ); Date date2 = ft.parse( time2 ); quot = date1.getTime() - date2.getTime(); quot = quot / 1000 / 60 / 60 / 24; } catch (ParseException e) { e.printStackTrace(); } return quot; }
3、转MYSQL的datetime日期类型:
/* * Date类型转换为MYSQL DateTime类型 */ public static String DateToMySQLDateTimeString(String date) { final String[] MONTH = {"Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec",}; StringBuffer ret = new StringBuffer(); String dateToString = date.toString(); //like "Sat Dec 17 15:55:16 CST 2005"
ret.append(dateToString.substring(24,24+4));//append yyyy
String sMonth = dateToString.substring(4,4+3); for(int i=0;i<12;i++) { //append mm
if(sMonth.equalsIgnoreCase(MONTH[i])) { if((i+1) < 10) ret.append("-0"); else ret.append("-"); ret.append((i+1)); break; } } ret.append("-"); ret.append(dateToString.substring(8,8+2)); ret.append(" "); ret.append(dateToString.substring(11,11+8)); return ret.toString(); }
5、MD5加密方法:
// MD5加密方法
public static String change2MD5(String srcString) { MessageDigest md = null; try { md = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException nsae) { return ""; }
byte[] md5Bytes = md.digest(srcString.getBytes()); int tmpInt = 0; StringBuffer sb = new StringBuffer(); for (int i = 0; i < md5Bytes.length; i++) { tmpInt = (int) (md5Bytes[i] & 0xff); if (tmpInt < 16) { sb.append("0"); } sb.append(Integer.toHexString(tmpInt)); } return sb.toString(); } }
6、判断字符是否为0-9和英文字符:
// 判断字符串是否为合法字符
public static boolean isRegStr(String Str) { boolean flag=true; Pattern p=null; Matcher m=null; try { p = java.util.regex.Pattern.compile("[^0-9A-Za-z]"); m = p.matcher(Str); if(m.find()) flag=false; }catch(Exception e) {} return flag; }
7、判断邮件格式是否合法:
/*
*判断邮件格式
*/
public static boolean isEmail(String str) { if(str.length()<6||str.indexOf('@',0)==-1||str.indexOf('.',0)==-1) { return false; } else { return true; } }
8、替换换行与HTML符号:
//替换换行符号
public static String converLine(String str) { return str.replaceAll("\n", " "); } //替换HTML符
public static String converHtmlChar(String str) { str = str.replaceAll("&", "&"); str = str.replaceAll(" ", " "); str = str.replaceAll("<", "<"); str = str.replaceAll(">", ">"); str = str.replaceAll("\"", """); return str; }
9、分割字符的方法:
//字符分割方法
public static final String[] split(String str, String delims) { StringTokenizer st = new StringTokenizer(str, delims); ArrayList list = new ArrayList(); for(; st.hasMoreTokens(); list.add(st.nextToken())); return (String[])list.toArray(new String[list.size()]); }
10、JSP与Servlet处理字符乱码方式:
// 用于读数据库时由iso8859-1变为GBK
public static String GBKConverter(String s_string){ try{ String des = new String(s_string.getBytes("iso8859-1"),"gb2312"); return des; } catch(Exception ex){ String des=""; return des; } } // 用于处理页内生成的中文数据在写入数据库时的处理,由GBK变为iso8859-1
public static String ISOConverter(String s_string){ try{ String des = new String(s_string.getBytes("gb2312"),"iso8859-1"); return des; } catch(Exception ex){ String des = ""; return des; } }
11、从数据源获取connection:
//从数据库源获取数据连接
public static Connection getConnectionFromDs() { Connection con=null; DataSource ds=null; Context context=null; try { //1连接到JNDI服务器
context=new InitialContext(); //2获取数据库源
ds=(DataSource)context.lookup("java:comp/env/jdbc/mysql-local"); con=ds.getConnection(); System.out.println("已获取数据库连接池!!"); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return con; }
12、生成4位图片验证码:
public class CreateValidateCode extends HttpServlet { // 生成随机种子
Random random = new Random(); public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("image/jpeg"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expires", 0); HttpSession session = request.getSession(true);
// 在内存中创建图象
int width = 50, height = 25; BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
// 获取图形上下文
Graphics g = image.getGraphics();
// 设定背景色
g.setColor(getRandColor(200, 250)); g.fillRect(0, 0, width, height);
// 设定字体
g.setFont(new Font("Georgia", Font.BOLD, 16));
// 画边框
// g.setColor(getRandColor(0,0));
// g.drawRect(0,0,width-1,height-1);
// 随机产生155条干扰线,使图象中的认证码不易被其它程序探测到
g.setColor(getRandColor(160, 220)); for (int i = 0; i < 155; i++) { int x = random.nextInt(width); int y = random.nextInt(height); int xl = random.nextInt(12); int yl = random.nextInt(12); g.drawLine(x, y, x + xl, y + yl); } // 取随机产生的认证码(4位数字)
String sRand = ""; for (int i = 0; i < 4; i++) { String rand = createRandStr(); sRand += rand; // 将认证码显示到图象中
g.setColor(new Color(40 + random.nextInt(110), 40 + random .nextInt(110), 40 + random.nextInt(110))); // 调用函数出来的颜色相同,可能是因为种子太接近,所以只能直接生成
g.drawString(rand, 10 * i + 3, 18); }
// 将认证码存入SESSION
session.setAttribute("rand", sRand); // 图象生效
g.dispose(); ServletOutputStream responseOutputStream = response.getOutputStream(); // 输出图象到页面
ImageIO.write(image, "JPEG", responseOutputStream);
// 以下关闭输入流!
responseOutputStream.flush(); responseOutputStream.close(); }
public String createRandStr() { //Random random = new Random();
String str=""; String[] arr={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; //for(int i=0;i<4;i++)
//{
int rand=random.nextInt(61); str=arr[rand]; //}
return str; } Color getRandColor(int fc, int bc) { // 给定范围获得随机颜色
Random random = new Random(); if (fc > 255) fc = 255; if (bc > 255) bc = 255; int r = fc + random.nextInt(bc - fc); int g = fc + random.nextInt(bc - fc); int b = fc + random.nextInt(bc - fc); return new Color(r, g, b); }
}
|