java開發中時間按工具類

          package cn.hnedu.util;


          import java.io.*;
          import java.text.*;
          import java.util.*;
          import java.sql.Timestamp;
          import java.text.DateFormat;
          import java.text.SimpleDateFormat;
          import java.util.Calendar;
          import java.util.Date;

          public class DateUtils {
            public DateUtils() {
            }

            public final static Calendar myc = Calendar.getInstance();

            public static final int SECOND = 1000;
            public static final int MINUTE = SECOND * 60;
            public static final int HOUR = MINUTE * 60;
            public static final int DAY = HOUR * 24;
            public static final int WEEK = DAY * 7;
            public static final int YEAR = DAY * 365; // or 366 ???

            public static final long GMT_VIETNAM_TIME_OFFSET = HOUR * 8;

            private static long SERVER_TIME_OFFSET = HOUR * 0;

            private static DateFormat ddMMyyyyFormat = new SimpleDateFormat("dd/MM/yyyy");
            private static DateFormat yyyymmddhhmmssFormat = new SimpleDateFormat(
                "yyyy年MM月dd日 kk:mm:ss");
            private static DateFormat mmddhhmmFormat = new SimpleDateFormat(
                "MM月dd日 kk:mm");
            private static DateFormat yyyymmddhhmmFormat = new SimpleDateFormat(
                "yyyy年MM月dd日 kk:mm");
            private static DateFormat dateFormat = SimpleDateFormat.getDateInstance(
                SimpleDateFormat.DEFAULT);
            private static DateFormat datetimeFormat = SimpleDateFormat.
                getDateTimeInstance(SimpleDateFormat.DEFAULT, SimpleDateFormat.DEFAULT);

            /**
             * @return 返回當前時間,返回格式:2003-4-25 14:50:7
             */
            public static String getTime() {
              return getTime("yyyy-MM-dd HH:mm:ss");
            }

            public static Date getDate(String parrten) {
              if (!StringUtils.hasText(parrten)) {
                parrten = "yyyyMMddHH";
              }
              String starttime = DateUtils.getTime(parrten);
              return DateUtils.getStrToDate(starttime, parrten);
            }
           
            public static Date getDate(){
             return getDate("yyyy-MM-dd HH:mm:ss");
            }

            /**
             * 獲得當前時間
             * @param parrten 輸出的時間格式
             * @return 返回時間
             */
            public static String getTime(String parrten) {
              String timestr;
              if (parrten == null || parrten.equals("")) {
                parrten = "yyyyMMddHHmmss";
              }
              java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
              java.util.Date cday = new Date();
              timestr = sdf.format(cday);
              return timestr;
            }

            /**
             * 時間格式轉換
             * @param cday
             * @param parrten
             * @return
             */
            public static String getTime(Date cday, String parrten) {
              String timestr;
              if (parrten == null || parrten.equals("")) {
                parrten = "yyyyMMddHHmmss";
              }
              java.text.SimpleDateFormat sdf = new SimpleDateFormat(parrten);
              timestr = sdf.format(cday);
              return timestr;
            }

            /**
             * 得到昨天的時間
             * @return
             */
            public static String getYestday() {
              String timestr;
              java.util.Calendar cc = myc;
              cc.roll(cc.DAY_OF_YEAR, -1);
              java.text.SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
              timestr = sdf.format(cc.getTime());
              return timestr;
            }

            //將一個時間字符串轉換為date型
            public static Date getStrToDate(String time, String parrten) {
              SimpleDateFormat formatter = new SimpleDateFormat(parrten);
              ParsePosition pos = new ParsePosition(0);
              Date dt1 = formatter.parse(time, pos);
              return dt1;
            }

            /**
             * 將時間轉換為xxxx年xx月xx日格式
             * @param t1 原時間
             * @param parrten 原時間格式
             * @return
             */
            public static String getTime(String t1, String parrten) {
              SimpleDateFormat formatter = new SimpleDateFormat(parrten);
              SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy年MM月dd日");
              ParsePosition pos = new ParsePosition(0);
              Date dt1 = formatter.parse(t1, pos);
              return formatter2.format(dt1);
            }

            /**
             * 將時間轉換為parrten2格式
             * @param t1
             * @param parrten
             * @param parrten2
             * @return
             */
            public static String getTime(String t1, String parrten, String parrten2) {
              SimpleDateFormat formatter = new SimpleDateFormat(parrten);
              SimpleDateFormat formatter2 = new SimpleDateFormat(parrten2);
              ParsePosition pos = new ParsePosition(0);
              Date dt1 = formatter.parse(t1, pos);
              return formatter2.format(dt1);
            }

            /**
             * 比較兩個字符串時間的大小
             * @param t1 時間1
             * @param t2 時間2
             * @param parrten 時間格式 :yyyy-MM-dd
             * @return 返回long =0相等,>0 t1>t2,<0 t1<t2
             */
            public static long compareStringTime(String t1, String t2, String parrten) {
              SimpleDateFormat formatter = new SimpleDateFormat(parrten);
              ParsePosition pos = new ParsePosition(0);
              ParsePosition pos1 = new ParsePosition(0);
              Date dt1 = formatter.parse(t1, pos);
              Date dt2 = formatter.parse(t2, pos1);
              long l = dt1.getTime() - dt2.getTime();
              return l;
            }

            //相差的天數
            public static int compareTime(String time1, String time2) {
              long l = compareStringTime(time1, time2, "yyyy-MM-dd");
              long days = l / 1000 / 60 / 60 / 24;
              return (int) days;
            }

            public static synchronized String getDateDDMMYYYY(Date date) {
              return ddMMyyyyFormat.format(date);
            }

            public static synchronized String getDateindex(Date date) {
              return yyyymmddhhmmssFormat.format(date);
            }

            public static synchronized String getDateSearch(Date date) {
              return mmddhhmmFormat.format(date);
            }

            public static synchronized String getDateNoSencond(Date date) {
              return yyyymmddhhmmFormat.format(date);
            }

            public static synchronized String formatDate(Date date) {
              return dateFormat.format(date);
            }

            public static synchronized String formatDateTime(Date date) {
              return datetimeFormat.format(date);
            }

            public static Timestamp getCurrentGMTTimestamp() {
              return new Timestamp(System.currentTimeMillis() - SERVER_TIME_OFFSET);
            }

            public static void updateCurrentGMTTimestamp(Timestamp timeToUpdate) {
              timeToUpdate.setTime(System.currentTimeMillis() - SERVER_TIME_OFFSET);
            }

            public static Date getVietnamDateFromGMTDate(Date date) {
              return new Date(date.getTime() + GMT_VIETNAM_TIME_OFFSET);
            }

            public static Date convertGMTDate(Date gmtDate, int hourOffset) {
              return new Date(gmtDate.getTime() + hourOffset * HOUR);
            }

            public static Timestamp convertGMTTimestamp(Timestamp gmtTimestamp,
                                                        int hourOffset) {
              return new Timestamp(gmtTimestamp.getTime() + hourOffset * HOUR);
            }

            public static Timestamp getCurrentGMTTimestampExpiredYear(int offsetYear) {
              //return new Timestamp(System.currentTimeMillis() + offsetYear*(365*24*60*60*1000));
              Calendar now = Calendar.getInstance();
              now.add(Calendar.YEAR, offsetYear);
              return new Timestamp(now.getTime().getTime());
            }

            public static Timestamp getCurrentGMTTimestampExpiredMonth(int offsetMonth) {
              Calendar now = Calendar.getInstance();
              now.add(Calendar.MONTH, offsetMonth);
              return new Timestamp(now.getTime().getTime());
            }

            /**
             * 在當前的日期前加上N天
             * @param day int 天數
             * @return Date
             */
            public static Date addDay(int day) {
              java.util.Date date1 = new Date();
              long Time = (date1.getTime() / 1000) + 60 * 60 * 24 * day;
              date1.setTime(Time * 1000);
              return date1;
            }

            /**
             * 計算兩個時間之間的天數
             * @param d1 Date
             * @param d2 Date
             * @return long
             */
            public static long getDaysFromTwoDate(Date d1, Date d2) {
              long day = (d1.getTime() - d2.getTime()) / (24 * 60 * 60 * 1000);
              return day;
            }

            public static Date getLastSunday() {
              String sdate = getTime("yyyy-MM-dd");
              int syear = Integer.parseInt(sdate.substring(0, 4));
              int smonth = Integer.parseInt(sdate.substring(5, 7));
              int sday = Integer.parseInt(sdate.substring(8, 10));
              GregorianCalendar cal = new GregorianCalendar();
              cal.set(syear, smonth, sday);
              int week = cal.get(java.util.Calendar.DAY_OF_WEEK); //1為星期天
              return addDay( - (week + 6));
            }

            public static Date getLastSaturday() {
              String sdate = getTime("yyyy-MM-dd");
              int syear = Integer.parseInt(sdate.substring(0, 4));
              int smonth = Integer.parseInt(sdate.substring(5, 7));
              int sday = Integer.parseInt(sdate.substring(8, 10));
              GregorianCalendar cal = new GregorianCalendar();
              cal.set(syear, smonth, sday);
              int week = cal.get(java.util.Calendar.DAY_OF_WEEK); //1為星期天
              return addDay( - (week));
            }

            public static String getlastMonth() {
              String sdate = getTime("yyyy-MM-dd");
              int syear = Integer.parseInt(sdate.substring(0, 4));
              int smonth = Integer.parseInt(sdate.substring(5, 7));
              smonth = smonth - 1;
              if (smonth == 0) {
                smonth = 12;
                syear = syear - 1;
              }
              return syear + "-" + smonth + "-01";
            }

            public static String getThisMonthStart() {
              String sdate = getTime("yyyy-MM-dd");
              int syear = Integer.parseInt(sdate.substring(0, 4));
              int smonth = Integer.parseInt(sdate.substring(5, 7));
              return syear + "-" + smonth + "-01";
            }

            /**
             * 當日屬于一年的第幾周
             * @return int
             */
            public static int getWeekOfYeah() {
              Calendar calendar = Calendar.getInstance();
             
              int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
              return week;
            }

            /**
             * 得到一個星期的開始
             * @return Date
             */
            public static Date weekStart() {
              Date date = new Date();
              Calendar calendar = Calendar.getInstance();
              int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
              Date dateBegin = new Date();
              dateBegin.setTime(date.getTime() - (long) (week) * 24 * 60 * 60 * 1000);
              return dateBegin;
            }

            /**
             * 得到一個星期的結束
             * @return Date
             */
            public static Date weekEnd() {
              Date date = new Date();
              Calendar calendar = Calendar.getInstance();
              int week = calendar.get(Calendar.DAY_OF_WEEK) - 1;
              Date dateEnd = new Date();
              dateEnd.setTime(date.getTime() + (long) (6 - week) * 24 * 60 * 60 * 1000);
              return dateEnd;
            }

            /**
             * 得到某年第n個星期的星期天
             * @param year int
             * @param week int
             * @return Date
             */
            public static Date getDateByYearAndWeekstart(int year, int week) { //星期日。第一天
              Calendar calendar = Calendar.getInstance();
              calendar.set(Calendar.YEAR, year);
              calendar.set(Calendar.WEEK_OF_YEAR, week);
              calendar.set(Calendar.DAY_OF_WEEK, 1);
              return calendar.getTime();
            }

            public static String getQuarter(String month) {
                if (!StringUtils.hasText(month) && !StringUtils.isNumeric(month)) {
                    month = "1";
                }
                int m = Integer.parseInt(month);
                if (m <= 12 && m >= 10) {
                    return "4";
                } else if (m <= 9 && m >= 7) {
                    return "3";
                } else if (m <= 6 && m >= 4) {
                    return "2";
                } else {
                    return "1";
                }
            }

            public static String getQuarter(){
                String month=getTime("M");
                return getQuarter(month);
            }


            public static String getQuarterCn(){
                String month=getTime("M");
                return getQuarterCn(month);
            }

            public static String getQuarterCn(String month) {
                if (!StringUtils.hasText(month) && !StringUtils.isNumeric(month)) {
                    month = "1";
                }
                int m = Integer.parseInt(month);
                if (m <= 12 && m >= 10) {
                    return "四";
                } else if (m <= 9 && m >= 7) {
                    return "三";
                } else if (m <= 6 && m >= 4) {
                    return "二";
                } else {
                    return "一";
                }
            }


            /**
             * 得到某年第n個星期的星期六
             * @param year int
             * @param week int
             * @return Date
             */
            public static Date getDateByYearAndWeekend(int year, int week) { //星期六。最后一天
              Calendar calendar = Calendar.getInstance();
              calendar.set(Calendar.YEAR, year);
              calendar.set(Calendar.WEEK_OF_YEAR, week);
              calendar.set(Calendar.DAY_OF_WEEK, 0);
              return calendar.getTime();
            }

            public static void main(String args[]) {
             String stime="2007-08-24";
             String etime="2007-08-28";
             //System.out.println(DateUtils.compareTime(etime,stime));
             //System.out.println(DateUtils.getTime("M"));
             Float a=Float.valueOf("1");
             Float b=Float.valueOf("1.9");
            }

          }

          posted on 2011-06-01 12:23 斌哥 閱讀(2449) 評論(3)  編輯  收藏

          評論

          # re: java開發中時間工具類 2011-06-01 12:23 斌哥

          不錯哦 喜歡 拿下了  回復  更多評論   

          # re: java開發中時間工具類 2011-06-01 12:24 斌哥

          @斌哥
          哈哈 謝謝誒 你喜歡就是我喜歡的  回復  更多評論   

          # re: java開發中時間按工具類 2011-06-02 09:37 gaochuwei0

          private static DateFormat ddMMyyyyFormat = new SimpleDateFormat("dd/MM/yyyy"); 這些申明為static的會有問題,具體你可以寫個多線程的程序測試一下就O啦   回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統計

          常用鏈接

          留言簿(1)

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 油尖旺区| 望江县| 金塔县| 延寿县| 遵义市| 龙州县| 伊宁县| 广汉市| 松桃| 文成县| 绥江县| 探索| 阜城县| 凉城县| 卓资县| 萍乡市| 淳安县| 中江县| 绵竹市| 无棣县| 嘉祥县| 诸城市| 辽中县| 新营市| 伽师县| 屯门区| 灌阳县| 抚州市| 罗城| 邵东县| 富阳市| 云浮市| 海伦市| 镇康县| 巴彦淖尔市| 安顺市| 读书| 和林格尔县| 安阳市| 宜城市| 阿坝|