首页 > 编程 > Java > 正文

java常用工具类 Date日期、Mail邮件工具类

2019-11-26 08:58:43
字体:
来源:转载
供稿:网友

本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下

package com.jarvis.base.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;/** *  *  * @Title: DateHelper.java * @Package com.jarvis.base.util * @Description:日期工具类 * @version V1.0  */public class DateHelper { /** * 日期格式yyyy-MM-dd */ public static final String pattern_date = "yyyy-MM-dd"; /** * 日期时间格式yyyy-MM-dd HH:mm:ss */ public static final String pattern_time = "yyyy-MM-dd HH:mm:ss"; /** * 描述:日期格式化 *  * @param date *   日期 * @return 输出格式为 yyyy-MM-dd 的字串 */ public static String formatDate(Date date) { return formatDate(date, pattern_time); } /** * 描述:日期格式化 *  * @param date *   日期 * @param pattern *   格式化类型 * @return */ public static String formatDate(Date date, String pattern) { SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); return dateFormat.format(date); } /** * 描述:解析日期字串 *  * @param dateStr *   日期字串 * @return 按 yyyy-MM-dd HH:mm:ss 格式解析 */ public static Date parseString(String dateStr) { return parseString(dateStr, "yyyy-MM-dd HH:mm:ss"); } /** * 描述:解析日期字串 *  * @param dateStr *   日期字串 * @param pattern *   字串日期格式 * @return 对应日期类型数据 */ public static Date parseString(String dateStr, String pattern) { SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); try { if (!StringHelper.isEmpty(dateStr)) { return dateFormat.parse(dateStr); } } catch (ParseException ex) { ex.printStackTrace(); System.err.println(dateStr + "转换成日期失败,可能是不符合格式:" + pattern); } return null; } /** * 描述:获取指定日期的中文星期数 *  * @param date *   指定日期 * @return 星期数,如:星期一 */ public static String getWeekStr(Date date) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int week = calendar.get(7); --week; String weekStr = ""; switch (week) { case 0: weekStr = "星期日"; break; case 1: weekStr = "星期一"; break; case 2: weekStr = "星期二"; break; case 3: weekStr = "星期三"; break; case 4: weekStr = "星期四"; break; case 5: weekStr = "星期五"; break; case 6: weekStr = "星期六"; } return weekStr; } /** * 描述:间隔时间 *  * @param date1 * @param date2 * @return 毫秒数 */ public static long getDateMiliDispersion(Date date1, Date date2) { if ((date1 == null) || (date2 == null)) { return 0L; } long time1 = date1.getTime(); long time2 = date2.getTime(); return time1 - time2; } /** * 描述:间隔天数 *  * @param date1 * @param date2 * @return 天数 */ public static int getDateDiff(Date date1, Date date2) { if ((date1 == null) || (date2 == null)) { return 0; } long time1 = date1.getTime(); long time2 = date2.getTime(); long diff = time1 - time2; Long longValue = new Long(diff / 86400000L); return longValue.intValue(); } /** * 描述:获取指定日期之前多少天的日期 *  * @param date *   指定日期 * @param day *   天数 * @return 日期 */ public static Date getDataDiff(Date date, int day) { if (date == null) { return null; } long time = date.getTime(); time -= 86400000L * day; return new Date(time); } /** * 描述:获取当前周 *  * @return */ public static int getCurrentWeek() { Calendar calendar = Calendar.getInstance(); int week = calendar.get(7); --week; if (week == 0) { week = 7; } return week; } /** * 描述:获取中文当前周 *  * @return */ public static String getCurrentWeekStr() { return getWeekStr(new Date()); } /** * 描述:获取本年 *  * @return */ public static int getCurrentYear() { Calendar calendar = Calendar.getInstance(); return calendar.get(1); } /** * 描述:获取本月 *  * @return */ public static int getCurrentMonth() { Calendar calendar = Calendar.getInstance(); return calendar.get(2) + 1; } /** * 描述:获取本月的当前日期数 *  * @return */ public static int getCurrentDay() { Calendar calendar = Calendar.getInstance(); return calendar.get(5); } /** * 描述:当前时间与指定时间的差 *  * @param str *   秒数 * @return 时间差,单位:秒 */ public static int getUnixTime(String str) { if ((str == null) || ("".equals(str))) { return 0; } try { long utime = Long.parseLong(str) * 1000L; Date date1 = new Date(utime); Date date = new Date(); long nowtime = (date.getTime() - date1.getTime()) / 1000L; return (int) nowtime; } catch (Exception e) { e.printStackTrace(); System.err.println("获取时差失败"); } return 0; } /** * 描述:去除日期字串中原“-”和“:” *  * @param dateTime日期字串 * @return */ public static String formatString(String dateTime) { if ((dateTime != null) && (dateTime.length() >= 8)) { String formatDateTime = dateTime.replaceAll("-", ""); formatDateTime = formatDateTime.replaceAll(":", ""); String date = formatDateTime.substring(0, 8); return date; } return ""; } /** * 描述:当前时间与指定时间的差 *  * @param str *   yyyy-MM-dd HH:mm:ss 格式的日期 * @return 时间差,单位:秒 */ public static int getTimesper(String str) { if ((str == null) || ("".equals(str))) { return 0; } try { Date date1 = new Date(Long.parseLong(str)); Date date = new Date(); long nowtime = (date.getTime() - date1.getTime()) / 1000L; return (int) nowtime; } catch (Exception e) { e.printStackTrace(); System.err.println("日期转换出错"); } return 0; } /** * 描述:获取16位日期时间,yyyyMMddHHmmss *  * @param dateTime *   字串日期 * @return */ public static String formatDateTime(String dateTime) { if ((dateTime != null) && (dateTime.length() >= 8)) { String formatDateTime = dateTime.replaceAll("-", ""); formatDateTime = formatDateTime.replaceAll(":", ""); String date = formatDateTime.substring(0, 8); String time = formatDateTime.substring(8).trim(); for (int i = time.length(); i < 6; ++i) { time = time + "0"; } return date + time; } return ""; } /** * 描述:获取16位日期时间,yyyyMMddHHmmss *  * @param date *   日期 * @return */ public static String formatDateTime(Date date) { String dateTime = formatDate(date); return formatDateTime(dateTime); }}

Mail邮件工具类

package com.jarvis.base.util;import java.net.MalformedURLException;import java.net.URL;import java.util.ArrayList;import java.util.List;import org.apache.commons.mail.EmailAttachment;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.apache.commons.mail.MultiPartEmail;import org.apache.commons.mail.SimpleEmail;/** * @Title: MailHelper.java * @Package com.jarvis.base.util * @Description:mail工具类* @version V1.0 */ public class MailHelper{ /**  * 简单的发邮件方式 邮件内容只有标题和邮件内容 支持单个个用户发送  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址  * @param fromEmailAddress 发件人的邮件地址  * @throws EmailException  */ public static void sendSimpleEmail(String host, String username, String password, String subject, String contents,          String toEmailAddress, String fromEmailAddress) throws EmailException {  SimpleEmail email = new SimpleEmail();  email.setHostName(host);  email.setAuthentication(username, password);  email.addTo(toEmailAddress);  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setContent((Object)contents, "text/plain;charset=GBK");  email.send(); } /**  * 简单的发邮件方式 邮件内容只有标题和邮件内容 支持多个用户批量发送  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址  * @param fromEmailAddress 发件人的邮件地址  * @throws EmailException  */ public static void sendSimpleEmail(String host, String username, String password, String subject, String contents, String [] toEmailAddress, String fromEmailAddress) throws EmailException {  SimpleEmail email = new SimpleEmail();  email.setHostName(host);  email.setAuthentication(username, password);  //发送给多个人  for (int i = 0; i < toEmailAddress.length; i++)  {   email.addTo(toEmailAddress[i], toEmailAddress[i]);  }  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setContent((Object)contents, "text/plain;charset=GBK");  email.send(); } /**  * 发送带附件的邮件方式 邮件内容有标题和邮件内容和附件,附件可以是本地机器上的文本,也可以是web上的一个URL 文件,  * 当为web上的一个URL文件时,此方法可以将WEB中的URL文件先下载到本地,再发送给收入用户  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址  * @param fromEmailAddress 发件人的邮件地址  * @param multiPaths  附件文件数组  * @throws EmailException  */ public static void sendMultiPartEmail(String host, String username, String password, String subject,           String contents, String toEmailAddress, String fromEmailAddress,           String []multiPaths) throws MalformedURLException, EmailException {  List<EmailAttachment> attachmentList = new ArrayList<EmailAttachment>();  if (multiPaths != null)  {   for (int i = 0; i < multiPaths.length; i++)   {    EmailAttachment attachment = new EmailAttachment();    if (multiPaths[i].indexOf("http") == -1) //判断当前这个文件路径是否在本地 如果是:setPath 否则 setURL;    {     attachment.setPath(multiPaths[i]);    }    else    {     attachment.setURL(new URL(multiPaths[i]));    }    attachment.setDisposition(EmailAttachment.ATTACHMENT);    attachment.setDescription("");    attachmentList.add(attachment);   }  }  //发送邮件信息  MultiPartEmail email = new MultiPartEmail();  email.setHostName(host);  email.setAuthentication(username, password);  email.addTo(toEmailAddress);  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setMsg(contents); //注意这个不要使用setContent这个方法 setMsg不会出现乱码  for (int i = 0; i < attachmentList.size(); i++) //添加多个附件  {   email.attach((EmailAttachment) attachmentList.get(i));  }  email.send(); } /**  * 发送带附件的邮件方式 邮件内容有标题和邮件内容和附件,附件可以是本地机器上的文本,也可以是web上的一个URL 文件,  * 当为web上的一个URL文件时,此方法可以将WEB中的URL文件先下载到本地,再发送给收入用户  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址数组  * @param fromEmailAddress 发件人的邮件地址  * @param multiPaths  附件文件数组  * @throws EmailException  */ public static void sendMultiPartEmail(String host, String username, String password, String subject,           String contents, String[] toEmailAddress, String fromEmailAddress,           String []multiPaths) throws MalformedURLException, EmailException {  List<EmailAttachment> attachmentList = new ArrayList<EmailAttachment>();  if (multiPaths != null)  {   for (int i = 0; i < multiPaths.length; i++)   {    EmailAttachment attachment = new EmailAttachment();    if (multiPaths[i].indexOf("http") == -1) //判断当前这个文件路径是否在本地 如果是:setPath 否则 setURL;    {     attachment.setPath(multiPaths[i]);    }    else    {     attachment.setURL(new URL(multiPaths[i]));    }    attachment.setDisposition(EmailAttachment.ATTACHMENT);    attachment.setDescription("");    attachmentList.add(attachment);   }  }  //发送邮件信息  MultiPartEmail email = new MultiPartEmail();  email.setHostName(host);  email.setAuthentication(username, password);  //发送给多个人  for (int i = 0; i < toEmailAddress.length; i++)  {   email.addTo(toEmailAddress[i], toEmailAddress[i]);  }  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setMsg(contents); //注意这个不要使用setContent这个方法 setMsg不会出现乱码  for (int i = 0; i < attachmentList.size(); i++) //添加多个附件  {   email.attach((EmailAttachment) attachmentList.get(i));  }  email.send(); } /**  * 发送Html格式的邮件  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址  * @param fromEmailAddress 发件人邮件地址  * @throws EmailException  */ public static void sendHtmlEmail(String host, String username, String password, String subject, String contents, String toEmailAddress, String fromEmailAddress) throws EmailException {  HtmlEmail email = new HtmlEmail();  //email.setDebug(true);  email.setHostName(host);  email.setAuthentication(username, password);  email.addTo(toEmailAddress);  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setHtmlMsg(CharHelper.GBKto8859(contents));  email.send(); } /**  * 发送Html格式的邮件  *  * @param host    邮件服务器地址  * @param username   连接邮件服务器的用户名称  * @param password   连接邮件服务器的用户密码  * @param subject   邮件的主题  * @param contents   邮件的内容  * @param toEmailAddress 收件人的邮件地址数组  * @param fromEmailAddress 发件人邮件地址  * @throws EmailException  */ public static void sendHtmlEmail(String host, String username, String password, String subject, String contents, String[] toEmailAddress, String fromEmailAddress) throws EmailException {  HtmlEmail email = new HtmlEmail();  email.setHostName(host);  email.setAuthentication(username, password);  //发送给多个人  for (int i = 0; i < toEmailAddress.length; i++)  {   email.addTo(toEmailAddress[i], toEmailAddress[i]);  }  email.setFrom(fromEmailAddress, fromEmailAddress);  email.setSubject(subject);  email.setHtmlMsg(CharHelper.GBKto8859(contents));  email.send(); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表