欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-05 17:18:46
本文实例为大家分享了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();
  }
}

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