zoukankan      html  css  js  c++  java
  • 常用日期工具类

    常用日期工具类

    import java.sql.Timestamp;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.joda.time.DateTime;
    import org.joda.time.Days;
    import org.joda.time.LocalDate;
    import org.joda.time.format.DateTimeFormat;
    
    /**
     * 常用日期工具类
     * @author changbingbing
     *
     */
    public class DateUtils {
        public static final String FORMAT_DATE_TIME_DEFAULT="yyyy-MM-dd HH:mm:ss";//默认的年月日时分秒格式
        public static final String FORMAT_DATE_FOR_BORROWS="yyMMdd";//借款主键的年月日格式
        public static final String FORMAT_DATE_FOR_DAY="yyyy-MM-dd";//一般的天格式
        public static final String FORMAT_DATE_FOR_YMD000="yyyy-MM-dd 00:00:00";//yyyy-MM-dd 00:00:00
        public static final String FORMAT_DATE_CH="yyyy年MM月dd日";
        public static final String FORMAT_DATE_D="d";

     格式化指定日期(java.util.Date)

    /**
         * 
         * @Title: formatDate
         * @Description:格式化指定日期(java.util.Date)
         * @param format
         * @param date
         * @return
         * @Return: String
         *
         */
        public static String formatDate(String format, Date date) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(date);
        }

     格式化指定日期(org.joda.time.DateTime)

    /**
         * 格式化指定日期(org.joda.time.DateTime)
         * @param format
         * @param dateTime
         * @return
         */
        public static String formatDateTime(String format, DateTime dateTime) {
            return dateTime.toString(format);
        }

     格式化时间戳(java.sql.Timestamp)

    /**
         * 
         * @Title: formatTimeStamp
         * @Description:格式化时间戳(java.sql.Timestamp)
         * @param format
         * @param tm
         * @return
         * @Return: String
         *
         */
        public static String formatTimeStamp(String format, Timestamp tm) {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            return sdf.format(new Date(tm.getTime()));
        }

     字符串转化成日期(java.util.Date)

    /**
         * 
         * @Title: parseDate
         * @Description:字符串转化成日期(java.util.Date)
         * @param format
         * @param dateStr
         * @return
         * @Return: Date
         *
         */
        public static Date parseDate(String format, String dateStr) {
            Date dateResult = null;
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            try {
                dateResult = sdf.parse(dateStr);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return dateResult;
        }

     字符串转化成日期(org.joda.time.DateTime)

    /**
         * 字符串转化成日期(org.joda.time.DateTime)
         * @param format
         * @param dateStr
         * @return
         */
        public static DateTime parseDateTime(String format, String dateStr) {
            DateTime parseDateTime = null;
            try {
                parseDateTime = DateTimeFormat.forPattern(format).parseDateTime(dateStr);
            } catch (Exception e) {
                e.printStackTrace();
            }
            return parseDateTime;
        }

     字符串转化成日期2(org.joda.time.DateTime)

    /**
         * 字符串转化成日期2(org.joda.time.DateTime)
         * @param format
         * @param dateStr
         * @return
         */
        public static DateTime parseDateTime2(String format, String dateStr) {
            DateTime parseDateTime = null;
            try {
                parseDateTime = DateTime.parse(dateStr, DateTimeFormat .forPattern(format));
            } catch (Exception e) {
                e.printStackTrace();
            }
            return parseDateTime;
        }

     计算当前日期的上一个月的开始日期和结束日期

    /**
         * 计算当前日期的上一个月的开始日期和结束日期
         * 
         * @Title: calcLastStartEnd
         * @Description:TODO
         * @return
         * @Return: DateTime[]
         *
         */
        public static String[] calcLastStartEnd() {
    
            // 1.拿到当前日期
            DateTime currentDate = new DateTime();
            // 2.1 计算上一个月的开始日期
            DateTime tempLastFirstStart = currentDate.minusMonths(1).dayOfMonth()
                    .withMinimumValue();
            DateTime lastFirstStart = new DateTime(tempLastFirstStart.getYear(),
                    tempLastFirstStart.getMonthOfYear(),
                    tempLastFirstStart.getDayOfMonth(), 0, 0, 0);
            // 2.2 计算上一个月的结束日期
            DateTime tempLastFirstEnd = currentDate.minusMonths(1).dayOfMonth()
                    .withMaximumValue();
            DateTime lastFirstEnd = new DateTime(tempLastFirstEnd.getYear(),
                    tempLastFirstEnd.getMonthOfYear(),
                    tempLastFirstEnd.getDayOfMonth(), 23, 59, 59);
            // 3.封装在数组里面返回
            String lastStartEnd[] = new String[] {
                    lastFirstStart.toString(DateUtils.FORMAT_DATE_TIME_DEFAULT),
                    lastFirstEnd.toString(DateUtils.FORMAT_DATE_TIME_DEFAULT) };
    
            return lastStartEnd;
        }

     计算2个日期之间的差

    /**
         * 
         * @Title: daysBetween
         * @Description:计算2个日期之间的差
         * @param startTime
         * @param endTime
         * @return
         * @Return: int
         *
         */
        public static int daysBetween(DateTime startTime,DateTime endTime){
            return Days.daysBetween(startTime, endTime).getDays();
        }

      org.joda.time.DateTime转java.util.Date

    /**
         * org.joda.time.DateTime转java.util.Date
         * @param dateTime
         * @return
         */
        public static Date toDate(DateTime dateTime){
            return dateTime.toDate();
        }

     java.util.Date转org.joda.time.DateTime

    /**
         * java.util.Date转org.joda.time.DateTime
         * @param date
         * @return
         */
        public static DateTime toDateTime(Date date){
            return new DateTime(date);
        }
  • 相关阅读:
    nodejs使用nodemailer发送邮件
    nodemaierl以hotmail(微软邮箱)作为发件人时报错554 5.2.0 STOREDRV.Submission.Exception: OutboundSpamException;
    react 项目部署nginx 配置问题(部署在子目录下)
    nodejs之glob与globby
    package-lock.json的作用
    webpack搭建项目流程(纯干货)
    JS-数组遍历中删除元素的方法优化
    递归tree结构的数据(修改antd tree结构的数据)
    【原创】如何优雅的转换Bean对象
    【解决方案】mysql大数据删除
  • 原文地址:https://www.cnblogs.com/cb0327/p/5505796.html
Copyright © 2011-2022 走看看