A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-12 11:45  /  754 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文



/*
在项目的开发过程中,时间是我少不的,
在开发过程中我们要把这些常用的工具包收集起来,
我们就可以在以后的项目上更高效快速的开发。
希望大家平时在项目中时间处理能用得着,
对各种类型时间的处理,不同的返回类型。
代码都有注释,不明白或者有写得不好的地方还望指教。
希望大家多上传一些小的工具类,这样我们的开发过程中很有帮助。
*/
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

public class DateTimeUtils {
        public static double LOCAL_TIME_ZONES = 8/24d;
        public final static String[] parsePatterns = new String[] {
                "yyyy-M-d",
                "yyyy-MM-dd",
                "yyyy-M-dd",
                "yyyy-MM-d",
                "yyyy-M-d H:m",
                "yyyy-M-d H:mm",
                "yyyy-M-d HH:m",
                "yyyy-M-d HH:mm",
                "yyyy-M-d H:m:s",
                "yyyy-MM-dd HH:mm:ss",
                "yyyy-M-d H:m:s.S",
                "yyyy-MM-dd H:mm",
                "yyyy-MM-dd HH:m",
                "yyyy-MM-dd HH:mm",
                "yyyy-MM-dd HH:mm:ss",
                "yyyy-MM-dd HH:mm:ss.S",
                "yyyy-MM-dd HH:mm:ss.SS",
                "yyyy-MM-dd HH:mm:ss.SSS" };

        private final static String[] weekNames = new String[] { "", "一", "二", "三", "四", "五", "六", "日" };
        public final static String datePattern = "yyyy-MM-dd";
        public final static String timePattern = "yyyy-MM-dd HH:mm:ss";
        /**
         * 获取当前系统日历
         * @throws IllegalArgumentException
         * @see [类、类#方法、类#成员]
         */
        public static Calendar getCalendar() {
                return Calendar.getInstance();
        }
        /**
         * 获取当前系统时间,应统一调用,可根据用户的具体需求进行修改
         * @throws IllegalArgumentException
         * @see [类、类#方法、类#成员]
         */
        public static Date getDate() {
                return getCalendar().getTime();
        }
       
        /**
         * 获取当前系统时间,返回java.sql.Date
         * @throws IllegalArgumentException
         * @see [类、类#方法、类#成员]
         */
        public static java.sql.Date getSQLDate() {
                return toSqlDate(getCalendar().getTime());
        }

        /**
         * 将Date转Calendar
         * @param date
         * @see [类、类#方法、类#成员]
         */
        public static Calendar toCalendar(Date date){
                Calendar c = Calendar.getInstance();
                c.setTime(date);
                return c;
        }


        /**
         * 对date,加上day天
         * @param date
         * @param day
         * @see [类、类#方法、类#成员]
         */
        public static String addDay(final Date date, final int day) {
                DateFormat dateFormat = new SimpleDateFormat(datePattern, Locale.CHINESE);
                return dateFormat.format(operateDay(date, day));
        }

        /**
         * 对date,加上day天
         * @param date
         * @param day
         * @see [类、类#方法、类#成员]
         */
        public static Date operateDay(final Date date, final int day) {
                // return DateUtils.addDays(date, amount);
                Calendar c = toCalendar(date);
                c.add(Calendar.DATE, day);
                return c.getTime();
        }

        /**
         * 对date,加上month月
         * @param date
         * @param month
          String
         * @see [类、类#方法、类#成员]
         */
        public static String addMonth(final Date date, final int month) {
                DateFormat dateFormat = new SimpleDateFormat(datePattern, Locale.CHINESE);
                return dateFormat.format(operateDay(date, month));
        }

        /**
         * 对date,加上month月
         *
         * @param date
         * @param month
          Date
         * @see [类、类#方法、类#成员]
         */
        public static Date operateMonth(final Date date, final int month) {
                Calendar c = toCalendar(date);
                c.add(Calendar.MONTH, month);
                return c.getTime();
        }

        /**
         * 对date,加上year年
         * @param date
         * @param year
          String
         * @see [类、类#方法、类#成员]
         */
        public static String addYear(final Date date, final int year) {
                DateFormat dateFormat = new SimpleDateFormat(datePattern, Locale.CHINESE);
                return dateFormat.format(operateDay(date, year));
        }

        /**
         * 对date,加上year年
         * @param date
         * @param year
          Date
         * @see [类、类#方法、类#成员]
         */
        public static Date opearteYear(final Date date, final int year) {
                Calendar c = toCalendar(date);
                c.add(Calendar.YEAR, year);
                return c.getTime();
        }

        /**
         * 比较日期 ,得到较大的日期
         */
        public Date greatDate(Date date1, Date date2) {
                return date1.getTime() > date2.getTime() ? date1 : date2;
        }

        /**
         * 比较日期 ,得到较小的日期
         */
        public Date lessDate(Date date1, Date date2) {
                return date1.getTime() < date2.getTime() ? date1 : date2;
        }
       
        /**
         * 当前年
         
         * @see [类、类#方法、类#成员]
         */
        public static int getToYear(){
                return getCalendar().get(Calendar.YEAR);
        }
       
        /**
         * 当前月
         
         * @see [类、类#方法、类#成员]
         */
        public static int getToMonth(){
                return (getCalendar().get(Calendar.MONTH)+1);
        }
       
        /**
         * 当前日(月中日期)
         
         * @see [类、类#方法、类#成员]
         */
        public static int getToDay(){
                return getCalendar().get(Calendar.DAY_OF_MONTH);
        }
       
       
        /**
         * date的年
         
         * @see [类、类#方法、类#成员]
         */
        public static int getYear(Date date){
                return toCalendar(date).get(Calendar.YEAR);
        }
       
        /**
         * date的月
         
         * @see [类、类#方法、类#成员]
         */
        public static int getMonth(Date date){
                return (toCalendar(date).get(Calendar.MONTH)+1);
        }
       
        /**
         * date的日(月中日期)
         * @see [类、类#方法、类#成员]
         */
        public static int getDay(Date date){
                return toCalendar(date).get(Calendar.DAY_OF_MONTH);
        }
       
        /**
         * 根据year,month,day获得Date
         * @param year
         * @param month
         * @param day
         * @see [类、类#方法、类#成员]
         */
        public static Date getDate(int year, int month, int day){
                Calendar c = new GregorianCalendar(year, (month-1), day);
                return c.getTime();
        }
       
        /**
         * 根据Date获得当天的起始时间,即0时
         * @param year
         * @param month
         * @param day
         * @see [类、类#方法、类#成员]
         */
        public static Calendar toBeginOfCalendar(Date date){
                Calendar c = toCalendar(date);
                int year = c.get(Calendar.YEAR);
                int month = c.get(Calendar.MONTH);
                int day = c.get(Calendar.DAY_OF_MONTH);
                return new GregorianCalendar(year, month, day);
        }
       
        /**
         * 根据Date获得当天的起始时间,即0时
         * @param year
         * @param month
         * @param day
         
         * @see [类、类#方法、类#成员]
         */
        public static Date toBeginOfDate(Date date){
                return (toBeginOfCalendar(date)).getTime();
        }
       
        /**
         * 得到本月最后一天
         * @param date
         
         * @see [类、类#方法、类#成员]
         */
        public static Date getLastDayOfMonth(Date date){
                Calendar c = new GregorianCalendar(getYear(date), getMonth(date), 1);
                c.add(Calendar.DATE, -1);
                return c.getTime();
        }
       
        /**
         * 将java.util.Date转换为java.sql.Date
         * @param date
         
         * @see [类、类#方法、类#成员]
         */
        public static java.sql.Date toSqlDate(Date date){
                return new java.sql.Date(date.getTime());
        }
       
}


1 个回复

倒序浏览
谢谢楼主分享 收藏了
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马