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)) {
  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();
  }
}

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

(0)

相关推荐

  • java常用工具类 XML工具类、数据验证工具类

    本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 package com.jarvis.base.util; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.net.URL; import java.util.Properties

  • java常用工具类 数字工具类

    本文实例为大家分享了java常用工具类,数字工具类的具体代码,供大家参考,具体内容如下 package com.jarvis.base.util; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.Random; public class NumericHelper { /** * 描述:通过一个整数i获取你所要的哪几个(从0开始

  • java常用工具类 IP、File文件工具类

    本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 IP工具类 package com.jarvis.base.util; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; /** * * * @Title: IpMacUtil.java * @Package com.jarvis.base.util * @Description

  • Java常用工具类 UUID、Map工具类

    本文实例为大家分享了Java常用工具类 的具体代码,供大家参考,具体内容如下 UUID工具类 package com.jarvis.base.util; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; /** * A class that represents an immutable universally

  • Java常用工具类 Random随机数、MD5加密工具类

    本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 Random随机数工具类 package com.jarvis.base.util; import java.util.Random; /** * * * @Title: RandomHelper.java * @Package com.jarvis.base.util * @Description: 随机数工具类 * @version V1.0 */ public class RandomHelper { /** *

  • 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.u

  • Java Calendar日历与Date日期的相互转换详解

    Calendar转化为Data 返回标准化的Date public static Date calendarToData(int year, int month, int day) { Calendar calendar = Calendar.getInstance();//日历类的实例化 calendar.set(year, month - 1, day);//设置日历时间,月份必须减一 Date date = calendar.getTime(); // 从一个 Calendar 对象中获取

  • 新手小白学JAVA 日期类Date SimpleDateFormat Calendar(入门)

    目录 1. Date日期类 1.1 Date的构造函数 1.2 Date的构造函数练习 1.3 Date的常用方法练习 2. SimpleDateFormat 2.1 常用构造函数 2.2 日期转换格式工具类练习 2.3 日期转换综合练习 3.Calendar日历类 3.1 概念 3.2 常用方法 3.3 入门案例 3.4 巩固案例 1. Date日期类 类 Date 表示一个特定的瞬间,精确到毫秒 1.1 Date的构造函数 Date() 分配一个 Date 对象,以表示分配它的时间(精确到毫

  • Java时间工具类Date的常用处理方法

    目录 前言 Date 类 构造方法 常用方法 前言 Date 类 Date 类表示系统特定的时间戳,可以精确到毫秒.Date 对象表示时间的默认顺序是星期.月.日.小时.分.秒.年. 构造方法 Date 类有如下两个构造方法. Date():此种形式表示分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),使用该构造方法创建的对象可以获取本地的当前时间. Date(long date):此种形式表示从 GMT 时间(格林尼治时间)1970 年 1 月 1 日 0 时 0 分 0

  • Java常用类库Apache Commons工具类说明及使用实例详解

    Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.下面是我这几年做开发过程中自己用过的工具类做简单介绍. 组件 功能介绍 BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Betwixt XML与Java对象之间相互转换. Codec 处理常用的编码方法的工具类包 例如DES.SHA1.MD5.Base64等. Collections java集合框架操作. Compress java提供文件打包 压缩类库. Con

  • Java常用的时间工具类实例

    本文实例讲述了Java常用的时间工具类.分享给大家供大家参考,具体如下: package org.zhy.date; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; /** * 时间类型工具类 * * @author zhengyi * */ pu

  • java字符串与日期类型转换的工具类

    常用的字符串转date,和日期转字符串的方法,具体内容如下 package com.cq2022.zago.base.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; import javax.xml.datatype.Dat

  • java常用工具类 Reflect反射工具类、String字符串工具类

    本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 Reflect反射工具类 package com.jarvis.base.util; /** * * * @Title: ReflectHelper.java * @Package com.jarvis.base.util * @Description: 反射工具类 * @version V1.0 */ public class ReflectHelper { /** * 提指定的类载入以系统中 * * @param n

  • Java常用时间工具类总结(珍藏版)

    目录 常量介绍 相关方法 工具类源码 肝了两天,重新整理了下时间工具类,以后我就以该时间工具类进行项目开发了,后会不定期更新功能,也欢迎留言需求,让工具类不断的完善. 常量介绍 相关方法 工具类源码 package com.zyq.util.date; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar;

随机推荐