java常用工具類 Date日期、Mail郵件工具類
更新時間:2019年05月30日 14:50:20 作者:遠方©
這篇文章主要為大家詳細介紹了java常用工具類,包括Date日期、Mail郵件工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了java常用工具類的具體實現(xiàn)代碼,供大家參考,具體內(nèi)容如下
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 { /** * 日期格式y(tǒng)yyy-MM-dd */ public static final String pattern_date = "yyyy-MM-dd"; /** * 日期時間格式y(tǒng)yyy-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 對應日期類型數(shù)據(jù) */ 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 + "轉(zhuǎn)換成日期失敗,可能是不符合格式:" + pattern); } return null; } /** * 描述:獲取指定日期的中文星期數(shù) * * @param date * 指定日期 * @return 星期數(shù),如:星期一 */ 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 毫秒數(shù) */ 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; } /** * 描述:間隔天數(shù) * * @param date1 * @param date2 * @return 天數(shù) */ 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 * 天數(shù) * @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; } /** * 描述:獲取本月的當前日期數(shù) * * @return */ public static int getCurrentDay() { Calendar calendar = Calendar.getInstance(); return calendar.get(5); } /** * 描述:當前時間與指定時間的差 * * @param str * 秒數(shù) * @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("日期轉(zhuǎn)換出錯"); } 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 { /** * 簡單的發(fā)郵件方式 郵件內(nèi)容只有標題和郵件內(nèi)容 支持單個個用戶發(fā)送 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址 * @param fromEmailAddress 發(fā)件人的郵件地址 * @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(); } /** * 簡單的發(fā)郵件方式 郵件內(nèi)容只有標題和郵件內(nèi)容 支持多個用戶批量發(fā)送 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址 * @param fromEmailAddress 發(fā)件人的郵件地址 * @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); //發(fā)送給多個人 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(); } /** * 發(fā)送帶附件的郵件方式 郵件內(nèi)容有標題和郵件內(nèi)容和附件,附件可以是本地機器上的文本,也可以是web上的一個URL 文件, * 當為web上的一個URL文件時,此方法可以將WEB中的URL文件先下載到本地,再發(fā)送給收入用戶 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址 * @param fromEmailAddress 發(fā)件人的郵件地址 * @param multiPaths 附件文件數(shù)組 * @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); } } //發(fā)送郵件信息 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不會出現(xiàn)亂碼 for (int i = 0; i < attachmentList.size(); i++) //添加多個附件 { email.attach((EmailAttachment) attachmentList.get(i)); } email.send(); } /** * 發(fā)送帶附件的郵件方式 郵件內(nèi)容有標題和郵件內(nèi)容和附件,附件可以是本地機器上的文本,也可以是web上的一個URL 文件, * 當為web上的一個URL文件時,此方法可以將WEB中的URL文件先下載到本地,再發(fā)送給收入用戶 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址數(shù)組 * @param fromEmailAddress 發(fā)件人的郵件地址 * @param multiPaths 附件文件數(shù)組 * @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); } } //發(fā)送郵件信息 MultiPartEmail email = new MultiPartEmail(); email.setHostName(host); email.setAuthentication(username, password); //發(fā)送給多個人 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不會出現(xiàn)亂碼 for (int i = 0; i < attachmentList.size(); i++) //添加多個附件 { email.attach((EmailAttachment) attachmentList.get(i)); } email.send(); } /** * 發(fā)送Html格式的郵件 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址 * @param fromEmailAddress 發(fā)件人郵件地址 * @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(); } /** * 發(fā)送Html格式的郵件 * * @param host 郵件服務器地址 * @param username 連接郵件服務器的用戶名稱 * @param password 連接郵件服務器的用戶密碼 * @param subject 郵件的主題 * @param contents 郵件的內(nèi)容 * @param toEmailAddress 收件人的郵件地址數(shù)組 * @param fromEmailAddress 發(fā)件人郵件地址 * @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); //發(fā)送給多個人 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(); } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
淺談Java中常用數(shù)據(jù)結構的實現(xiàn)類 Collection和Map
下面小編就為大家?guī)硪黄獪\談Java中常用數(shù)據(jù)結構的實現(xiàn)類 Collection和Map。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09Kylin對接JDBC集成Zepplin的實現(xiàn)方法
Zepplin是一個非常好用的編輯器工具,通過自定義編碼可以實現(xiàn)更多的業(yè)務邏輯,接下來通過本文給大家分享Kylin對接JDBC和Zepplin的操作代碼,感興趣的朋友跟隨小編一起看看吧2021-05-05SpringBoot配置連接兩個或多個數(shù)據(jù)庫的實現(xiàn)
本文主要介紹了SpringBoot配置連接兩個或多個數(shù)據(jù)庫的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05Netty分布式高性能工具類FastThreadLocal和Recycler分析
這篇文章主要為大家介紹了Netty分布式高性能工具類FastThreadLocal和Recycler分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03Spring實現(xiàn)資源的動態(tài)加載和卸載的方法小結
這篇文章主要介紹了Spring實現(xiàn)資源的動態(tài)加載和卸載的方法小結,文中通過代碼示例講解的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下2024-06-06