java中常用的日期格式化(全)

  1. import java.text.DateFormat;  
  2. import java.text.ParseException;  
  3. import java.text.SimpleDateFormat;  
  4. import java.util.Calendar;  
  5. import java.util.Date;  
  6. /** 
  7.  * 获取当前的日期格式为:yyyy-MM-dd HH:mm:ss 
  8.  *  
  9.  * @author Arthur(user_006) 
  10.  * @version 1.0.0 2010/04/24 14:00(星期六) 
  11.  */  
  12. public class TimerUtil {  
  13.   
  14.     /** 
  15.      * 获取当前的日期 , 默认格式 
  16.      *  
  17.      * @return 当前的日期 
  18.      */  
  19.     public synchronized static Date getCurrentCalendar() {  
  20.   
  21.         Calendar calendar = Calendar.getInstance();  
  22.         return calendar.getTime();  
  23.     }  
  24.   
  25.     /** 
  26.      * 获取当前日期 , 格式yyyy-MM-dd , 如: 2010-04-24 
  27.      *  
  28.      * @return 
  29.      */  
  30.     public synchronized static String getCurrentDate() {  
  31.   
  32.         Calendar calendar = Calendar.getInstance();  
  33.   
  34.         StringBuffer sb = new StringBuffer();  
  35.   
  36.         sb.append(calendar.get(Calendar.YEAR)).append("-");  
  37.         sb.append(calendar.get(Calendar.MONTH) + 1).append("-");  
  38.         sb.append(calendar.get(Calendar.DAY_OF_MONTH));  
  39.         return sb.toString();  
  40.     }  
  41.   
  42.     /** 
  43.      * 把字符形式的日期转换成Date类型 , 格式yyyy-MM-DD 
  44.      *  
  45.      * @param date 
  46.      *            日期的字符串形式 
  47.      *  
  48.      * @return Data类型的日期 
  49.      */  
  50.     public synchronized static Date convertToDate(String date) {  
  51.   
  52.         DateFormat format = new SimpleDateFormat("yyyy-MM-DD");  
  53.   
  54.         try {  
  55.   
  56.             return format.parse(date);  
  57.   
  58.         } catch (ParseException e) {  
  59.   
  60.             e.printStackTrace();  
  61.         }  
  62.         return null;  
  63.     }  
  64.   
  65.     /** 
  66.      * 把日期转换为指定的格式 
  67.      *  
  68.      * @param date 
  69.      *            要转换的日期 
  70.      * @param pattern 
  71.      *            转换的格式 
  72.      * @return 
  73.      */  
  74.     public synchronized static Date format(Date date, String pattern) {  
  75.   
  76.         if (pattern != null && pattern.trim().length() > 0) {  
  77.   
  78.             DateFormat format = new SimpleDateFormat(pattern);  
  79.   
  80.             String stringDate = format.format(date);  
  81.   
  82.             return TimerUtil.convertToDate(stringDate);  
  83.         }  
  84.         return null;  
  85.     }  
  86.   
  87.     /** 
  88.      * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss 
  89.      *  
  90.      * @param date 
  91.      *            要转换的日期 
  92.      * @return 
  93.      */  
  94.     public synchronized static String convertToString(Date date) {  
  95.   
  96.         DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  97.         return format.format(date);  
  98.     }  
  99.       
  100.     /** 
  101.      * 将日期转换为字符串 , 格式yyyy-MM-dd HH:mm:ss 
  102.      *  
  103.      * @param date 
  104.      *            要转换的日期 
  105.      * @return 
  106.      */  
  107.     public synchronized static String convertToStrShort(Date date) {  
  108.   
  109.         DateFormat format = new SimpleDateFormat("yyyy-MM-dd");  
  110.         return format.format(date);  
  111.     }  
  112.   
  113.     /** 
  114.      * 将日期转换为字符串 , 格式yyyyMMddHHmmss 
  115.      *  
  116.      * @param date 
  117.      *            要转换的日期 
  118.      * @return 
  119.      */  
  120.     public synchronized static String convertToString2(Date date) {  
  121.         DateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");  
  122.         return format.format(date);  
  123.     }  
  124.   
  125.       
  126.     /** 
  127.      * 将日期转换为指定格式的字符串 
  128.      *  
  129.      * @param date 
  130.      *            要转换的日期 
  131.      * @param formatText 
  132.      *            转换的格式 
  133.      * @return 
  134.      */  
  135.     public synchronized static String convertToString(Date date,  
  136.             String formatText) {  
  137.   
  138.         DateFormat format = new SimpleDateFormat(formatText);  
  139.   
  140.         Calendar calendar = Calendar.getInstance();  
  141.   
  142.         StringBuffer sb = new StringBuffer();  
  143.   
  144.         sb.append(calendar.get(Calendar.YEAR)).append("-");  
  145.         sb.append(calendar.get(Calendar.MONTH) + 1).append("-");  
  146.         sb.append(calendar.get(Calendar.DAY_OF_MONTH));  
  147.   
  148.         return format.format(date);  
  149.     }  
  150.   
  151.     /** 
  152.      * 获取本周一的日期 
  153.      *  
  154.      * @return 
  155.      */  
  156.     public synchronized static Date getMondayOFWeek() {  
  157.   
  158.         Calendar calendar = Calendar.getInstance();  
  159.         calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);// 这里设置从周一开始,若需要根据系统时区自动获取,则采用下边的方式  
  160.   
  161.         return calendar.getTime();  
  162.     }  
  163.   
  164.     /** 
  165.      * 获取本周日日期 
  166.      *  
  167.      * @return 
  168.      */  
  169.     public synchronized static Date getCurrentWeekday() {  
  170.   
  171.         Calendar calendar = Calendar.getInstance();  
  172.         calendar.add(Calendar.DATE, getCurrentPlus());// 把当前日期的DATE加上当前日期与本周日之间相差的天数  
  173.         return calendar.getTime();  
  174.     }  
  175.   
  176.     /** 
  177.      * 获取上周日的日期 
  178.      *  
  179.      * @return 
  180.      */  
  181.     public synchronized static Date getPreviousWeekday() {  
  182.   
  183.         Calendar calendar = Calendar.getInstance();  
  184.         // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);  
  185.         calendar.add(Calendar.DATE, getCurrentPlus() - 7);// 把当前日期的DATE加上当前日期与本周日之间相差的天数  
  186.         return calendar.getTime();  
  187.     }  
  188.   
  189.     /** 
  190.      * 获取上周日的日期 
  191.      *  
  192.      * @return 
  193.      */  
  194.     public synchronized static Date getPreviousMonday() {  
  195.   
  196.         Calendar calendar = Calendar.getInstance();  
  197.         // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);  
  198.         calendar.add(Calendar.DATE, getCurrentPlus() - 13);// 把当前日期的DATE加上当前日期与本周日之间相差的天数  
  199.         return calendar.getTime();  
  200.     }  
  201.   
  202.     /** 
  203.      * 获取上周日的日期 
  204.      *  
  205.      * @return 
  206.      */  
  207.     public synchronized static Date getNextWeekday() {  
  208.   
  209.         Calendar calendar = Calendar.getInstance();  
  210.         // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);  
  211.         calendar.add(Calendar.DATE, getCurrentPlus() + 1 + 6);// 把当前日期的DATE加上当前日期与本周日之间相差的天数  
  212.         return calendar.getTime();  
  213.     }  
  214.   
  215.     /** 
  216.      * 获取上周日的日期 
  217.      *  
  218.      * @return 
  219.      */  
  220.     public synchronized static Date getNextMonday() {  
  221.   
  222.         Calendar calendar = Calendar.getInstance();  
  223.         // calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY+7);  
  224.         calendar.add(Calendar.DATE, getCurrentPlus() + 1);// 把当前日期的DATE加上当前日期与本周日之间相差的天数  
  225.         return calendar.getTime();  
  226.     }  
  227.   
  228.     /** 
  229.      * 获取当前日期与本周周日之间相差的天数 
  230.      *  
  231.      * @return 
  232.      */  
  233.     public synchronized static int getCurrentPlus() {  
  234.   
  235.         Calendar calendar = Calendar.getInstance();  
  236.         int days = calendar.get(Calendar.DAY_OF_WEEK) - 1;// 在中国是已星期一作为一周的第一天,所以这里减1  
  237.         return 7 - days;  
  238.     }  
  239.   
  240.     public synchronized static int getCurrentYear() {  
  241.   
  242.         Calendar calendar = Calendar.getInstance();  
  243.         return calendar.get(Calendar.YEAR);  
  244.     }  
  245.   
  246.     /** 
  247.      * 返回指定日期的当月第一天 
  248.      *  
  249.      * @param date 
  250.      * @return 
  251.      */  
  252.     @SuppressWarnings("static-access")  
  253.     public synchronized static Date getFirstDayInMonth(Date date) {  
  254.   
  255.         Calendar calendar = Calendar.getInstance();  
  256.         calendar.setTime(date);  
  257.         calendar.set(calendar.DATE, 1);  
  258.         return calendar.getTime();  
  259.     }  
  260.   
  261.     /** 
  262.      * 返回指定日期的当月最后一天 
  263.      *  
  264.      * @param date 
  265.      * @return 
  266.      */  
  267.     @SuppressWarnings("static-access")  
  268.     public synchronized static Date getLastDayInMonth(Date date) {  
  269.   
  270.         Calendar calendar = Calendar.getInstance();  
  271.   
  272.         calendar.setTime(date);  
  273.         calendar.add(calendar.MONTH, 1);  
  274.         calendar.set(calendar.DATE, 1);  
  275.         calendar.add(calendar.DATE, -1);  
  276.   
  277.         return calendar.getTime();  
  278.     }  
  279.   
  280.     /* 
  281.      * 计算两个日期之间的天数 
  282.      */  
  283.     public static int getDaysBetween(Calendar d1, Calendar d2) {  
  284.         if (d1.after(d2)) {  
  285.             java.util.Calendar swap = d1;  
  286.             d1 = d2;  
  287.             d2 = swap;  
  288.         }  
  289.         int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);  
  290.         int y2 = d2.get(Calendar.YEAR);  
  291.         if (d1.get(Calendar.YEAR) != y2) {  
  292.             d1 = (Calendar) d1.clone();  
  293.             do {  
  294.                 days += d1.getActualMaximum(Calendar.DAY_OF_YEAR);// 得到当年的实际天数  
  295.                 d1.add(Calendar.YEAR, 1);  
  296.             } while (d1.get(Calendar.YEAR) != y2);  
  297.         }  
  298.         return days;  
  299.     }  
  300.     /* 
  301.      * 计算两个日期之间的时间 
  302.      */  
  303.     public static String getGapTime(Date createTime) {  
  304.         // TODO Auto-generated method stub  
  305.         Calendar d2 = Calendar.getInstance();  
  306.         Calendar d1 = Calendar.getInstance();  
  307.         d1.setTime(createTime);  
  308.         int days = d2.get(Calendar.DAY_OF_YEAR) - d1.get(Calendar.DAY_OF_YEAR);  
  309.         if (days < 1) {  
  310.             int hour = d2.get(Calendar.HOUR_OF_DAY)  
  311.                     - d1.get(Calendar.HOUR_OF_DAY);  
  312.             if (hour < 1) {  
  313.                 int munites = d2.get(Calendar.MINUTE) - d1.get(Calendar.MINUTE);  
  314.                 if (munites == 0) {  
  315.                     return "刚刚";  
  316.                 } else {  
  317.                     return munites + "分钟前";  
  318.                 }  
  319.             } else {  
  320.                 return hour + "小时前";  
  321.             }  
  322.   
  323.         } else {  
  324.             return days + "天前";  
  325.         }  
  326.     }  
  327.       
  328.     //加天数  
  329.     public static String addDays(int day){  
  330.         Calendar calendar = Calendar.getInstance();  
  331.         calendar.add(Calendar.DAY_OF_MONTH, day);  
  332.         StringBuffer sb = new StringBuffer();  
  333.         sb.append(calendar.get(Calendar.YEAR)).append("-");  
  334.         sb.append(calendar.get(Calendar.MONTH) + 1).append("-");  
  335.         sb.append(calendar.get(Calendar.DAY_OF_MONTH));  
  336.         return sb.toString();  
  337.     }  
  338.       
  339.     //加年份  
  340.     public static String addYears(String now, int year) throws ParseException{  
  341.           Calendar fromCal=Calendar.getInstance();  
  342.            
  343.            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  
  344.        Date date=dateFormat.parse(now);  
  345.        fromCal.setTime(date);  
  346.        fromCal.add(Calendar.YEAR, year);  
  347.          
  348.        return dateFormat.format(fromCal.getTime());  
  349.      }  
  350.       
  351.     //加天数(特定时间)  
  352.     public static String addDate(String now, int day) throws ParseException{  
  353.           Calendar fromCal=Calendar.getInstance();  
  354.            
  355.            DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  
  356.        Date date=dateFormat.parse(now);  
  357.        fromCal.setTime(date);  
  358.        fromCal.add(Calendar.DATE, day);  
  359.          
  360.        return dateFormat.format(fromCal.getTime());  
  361.      }  
  362.   
  363.     /** 
  364.      * 格多少时间 
  365.      * @throws ParseException  
  366.      */  
  367.   
  368.     @SuppressWarnings("deprecation")  
  369.     public static void main(String[] args) throws ParseException {  
  370.         System.out.println(TimerUtil.addYears("2008-12-01",7));  
  371.     }  
  372.         /*public static void main(String[] args) { 
  373.                String createDate = "2008-12-01"; 
  374.                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd"); 
  375.                try { 
  376.                 Date date = sdf.parse(createDate); 
  377.                 Calendar cl = Calendar.getInstance(); 
  378.                 cl.setTime(date); 
  379.                 cl.add(Calendar.DATE,31); 
  380.                 String temp = ""; 
  381.                 temp = sdf.format(cl.getTime()); 
  382.                 System.out.println(temp); 
  383.                } catch (ParseException e) { 
  384.                 // TODO Auto-generated catch block 
  385.                 e.printStackTrace(); 
  386.                } 
  387.             }*/  
  388. }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值