java常用工具類 Date日期、Mail郵件工具類
本文實(shí)例為大家分享了java常用工具類的具體實(shí)現(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";
/**
* 日期時(shí)間格式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 對(duì)應(yīng)日期類型數(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;
}
/**
* 描述:間隔時(shí)間
*
* @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);
}
/**
* 描述:獲取當(dāng)前周
*
* @return
*/
public static int getCurrentWeek() {
Calendar calendar = Calendar.getInstance();
int week = calendar.get(7);
--week;
if (week == 0) {
week = 7;
}
return week;
}
/**
* 描述:獲取中文當(dāng)前周
*
* @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;
}
/**
* 描述:獲取本月的當(dāng)前日期數(shù)
*
* @return
*/
public static int getCurrentDay() {
Calendar calendar = Calendar.getInstance();
return calendar.get(5);
}
/**
* 描述:當(dāng)前時(shí)間與指定時(shí)間的差
*
* @param str
* 秒數(shù)
* @return 時(shí)間差,單位:秒
*/
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("獲取時(shí)差失敗");
}
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 "";
}
/**
* 描述:當(dāng)前時(shí)間與指定時(shí)間的差
*
* @param str
* yyyy-MM-dd HH:mm:ss 格式的日期
* @return 時(shí)間差,單位:秒
*/
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)換出錯(cuò)");
}
return 0;
}
/**
* 描述:獲取16位日期時(shí)間,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位日期時(shí)間,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
{
/**
* 簡(jiǎn)單的發(fā)郵件方式 郵件內(nèi)容只有標(biāo)題和郵件內(nèi)容 支持單個(gè)個(gè)用戶發(fā)送
*
* @param host 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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();
}
/**
* 簡(jiǎn)單的發(fā)郵件方式 郵件內(nèi)容只有標(biāo)題和郵件內(nèi)容 支持多個(gè)用戶批量發(fā)送
*
* @param host 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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ā)送給多個(gè)人
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)容有標(biāo)題和郵件內(nèi)容和附件,附件可以是本地機(jī)器上的文本,也可以是web上的一個(gè)URL 文件,
* 當(dāng)為web上的一個(gè)URL文件時(shí),此方法可以將WEB中的URL文件先下載到本地,再發(fā)送給收入用戶
*
* @param host 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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) //判斷當(dāng)前這個(gè)文件路徑是否在本地 如果是: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); //注意這個(gè)不要使用setContent這個(gè)方法 setMsg不會(huì)出現(xiàn)亂碼
for (int i = 0; i < attachmentList.size(); i++) //添加多個(gè)附件
{
email.attach((EmailAttachment) attachmentList.get(i));
}
email.send();
}
/**
* 發(fā)送帶附件的郵件方式 郵件內(nèi)容有標(biāo)題和郵件內(nèi)容和附件,附件可以是本地機(jī)器上的文本,也可以是web上的一個(gè)URL 文件,
* 當(dāng)為web上的一個(gè)URL文件時(shí),此方法可以將WEB中的URL文件先下載到本地,再發(fā)送給收入用戶
*
* @param host 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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) //判斷當(dāng)前這個(gè)文件路徑是否在本地 如果是: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ā)送給多個(gè)人
for (int i = 0; i < toEmailAddress.length; i++)
{
email.addTo(toEmailAddress[i], toEmailAddress[i]);
}
email.setFrom(fromEmailAddress, fromEmailAddress);
email.setSubject(subject);
email.setMsg(contents); //注意這個(gè)不要使用setContent這個(gè)方法 setMsg不會(huì)出現(xiàn)亂碼
for (int i = 0; i < attachmentList.size(); i++) //添加多個(gè)附件
{
email.attach((EmailAttachment) attachmentList.get(i));
}
email.send();
}
/**
* 發(fā)送Html格式的郵件
*
* @param host 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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 郵件服務(wù)器地址
* @param username 連接郵件服務(wù)器的用戶名稱
* @param password 連接郵件服務(wù)器的用戶密碼
* @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ā)送給多個(gè)人
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();
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類 Collection和Map
下面小編就為大家?guī)?lái)一篇淺談Java中常用數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)類 Collection和Map。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09
Kylin對(duì)接JDBC集成Zepplin的實(shí)現(xiàn)方法
Zepplin是一個(gè)非常好用的編輯器工具,通過(guò)自定義編碼可以實(shí)現(xiàn)更多的業(yè)務(wù)邏輯,接下來(lái)通過(guò)本文給大家分享Kylin對(duì)接JDBC和Zepplin的操作代碼,感興趣的朋友跟隨小編一起看看吧2021-05-05
SpringBoot配置連接兩個(gè)或多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
本文主要介紹了SpringBoot配置連接兩個(gè)或多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05
Netty分布式高性能工具類FastThreadLocal和Recycler分析
這篇文章主要為大家介紹了Netty分布式高性能工具類FastThreadLocal和Recycler分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03
關(guān)于文件上傳MultipartBody的使用方法
這篇文章主要介紹了關(guān)于文件上傳MultipartBody的使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Spring實(shí)現(xiàn)資源的動(dòng)態(tài)加載和卸載的方法小結(jié)
這篇文章主要介紹了Spring實(shí)現(xiàn)資源的動(dòng)態(tài)加載和卸載的方法小結(jié),文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06
springmvc+kindeditor文件上傳實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了springmvc+kindeditor文件上傳實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08
Springboot配置文件相關(guān)說(shuō)明解析
這篇文章主要介紹了Springboot配置文件相關(guān)說(shuō)明解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06

