java常用工具类 Date日期、Mail邮件工具类
程序员文章站
2024-02-22 11:08:22
本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下
package com.jarvis.base.util;
import j...
本文实例为大家分享了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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。