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

网友投稿 276 2023-01-06


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

本文实例为大家分享了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)) {

StringRJzcvL formatDateTime = dateTime.replaceAll("-",http:// "");

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(uhttp://sername, 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 attachmentList = new ArrayList();

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 attachmentList = new ArrayList();

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

ehttp://mail.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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:报表系统接口设计步骤包括(对报表系统的描述)
下一篇:go接口自动化框架(go 接口实现)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~