• java工具包一:日期处理


    作者:NiceCui

    • 本文谢绝转载,如需转载需征得作者本人同意,谢谢。
    • 本文链接:http://www.cnblogs.com/NiceCui/p/7846812.html
    • 邮箱:moyi@moyibolg.com
    • 日期:2017-11-16

    平时写代码有时会常用到一些处理日期的逻辑,自己写了一个工具包,方便每次处理

      1 import java.text.ParseException;
      2 
      3 import java.text.SimpleDateFormat;
      4 import java.util.Date;
      5 
      6 import org.junit.Test;
      7 
      8 /**
      9  * 日期处理工具包
     10  * @author NiceCui
     11  * @date 2017-11-14
     12  *
     13  */
     14 public class DateTool {
     15     
     16     /**
     17      * 讲字符串格式的日期 转换成 自定义的 日期格式 返回Date类型
     18      * 
     19      * @param String
     20      *            date
     21      * @param String
     22      *            format
     23      * @return Date
     24      */
     25     public static Date getDate(String date, String format) {
     26         if (date == null)
     27             return null;
     28         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
     29         try {
     30             return formatdatetime.parse(date);
     31         } catch (ParseException e) {
     32             e.printStackTrace();
     33         }
     34         return null;
     35     }
     36 
     37     /**
     38      * 讲Date类型的日期 转换成 String 字符串形式的
     39      * 
     40      * @param date
     41      * @return String
     42      */
     43     public static String getTimeStr(Date date) {
     44         if (date == null)
     45             return null;
     46         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
     47         return formatdatetime.format(date);
     48     }
     49 
     50     /**
     51      * 比较两个 Date类型的 日期 是否是一样的
     52      * 
     53      * @param Date
     54      *            day1
     55      * @param Date
     56      *            day2
     57      * @return boolean
     58      */
     59     public static boolean isSameDay(Date day1, Date day2) {
     60         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
     61         String ds1 = dateFormat.format(day1);
     62         String ds2 = dateFormat.format(day2);
     63         if (ds1.equals(ds2)) {
     64             return true;
     65         } else {
     66             return false;
     67         }
     68     }
     69 
     70     /**
     71      * 返回开始日期 和 结束日期直接间隔的天数 返回的int类型 单位是 天
     72      * 
     73      * @param Date
     74      *            start
     75      * @param Date
     76      *            end
     77      * @return int
     78      */
     79     public static int getDays(Date start, Date end) {
     80         Date normStart = DateTool.getDateBegin(start);
     81         Date normEnd = DateTool.getDateBegin(end);
     82         int days = (int) ((normEnd.getTime() - normStart.getTime()) / (1000L * 24 * 3600));
     83 
     84         return days;
     85     }
     86 
     87     /**
     88      * 获得一天的第1s
     89      * 
     90      * @param date
     91      * @return
     92      */
     93     public static Date getDateBegin(Date date) {
     94         Date dateBegin = DateTool.getDate(DateTool.getDateStr(date), "yyyy-MM-dd");
     95         return dateBegin;
     96     }
     97     public static String getDateStr(Date date) {
     98         if(date==null) 
     99         return null;
    100         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
    101         return formatdatetime.format(date);
    102     }
    103     public static String getDateStr(Date date, String format) {
    104         if(date==null) return null;
    105         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat(format);
    106         return formatdatetime.format(date);
    107     }
    108 
    109     /**
    110      * 获得一天的最后1s
    111      * 
    112      * @param date
    113      * @return
    114      */
    115     public static Date getDateEnd(Date date) {
    116         Date endDate = DateTool.getDate(DateTool.getDateStr(new Date()) + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
    117         return endDate;
    118     }
    119 
    120     /**
    121      * 讲字符串形式的日期 返回 固定格式 年月日形式的Date形式的 日期
    122      * 
    123      * @param String
    124      *            datestr
    125      * @return Date
    126      */
    127     public static Date getDateStr(String datestr) {
    128         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy-MM-dd");
    129         try {
    130             return formatdatetime.parse(datestr);
    131         } catch (ParseException e) {
    132             e.printStackTrace();
    133             return null;
    134         }
    135     }
    136 
    137     /**
    138      * 返回 String 类型的 年
    139      * 
    140      * @param date
    141      * @return
    142      */
    143     public static String getYearStr(Date date) {
    144         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
    145         return formatdatetime.format(date);
    146     }
    147 
    148     /**
    149      * 返回 int 类型 的年
    150      * 
    151      * @param date
    152      * @return
    153      */
    154     public static int getYear(Date date) {
    155         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("yyyy");
    156         return Integer.parseInt(formatdatetime.format(date));
    157     }
    158 
    159     /**
    160      * 返回int类型的月
    161      * 
    162      * @param date
    163      * @return
    164      */
    165     public static int getMonth(Date date) {
    166         java.text.DateFormat formatdatetime = new java.text.SimpleDateFormat("MM");
    167         return Integer.parseInt(formatdatetime.format(date));
    168     }
    169 
    170     /**
    171      * "Tue May 17 10:26:26 CST 2011 由date.toString()得到 像这样的日期如何格式化?": String dstr =
    172      * "Tue May 17 10:26:26 CST 2011"; SimpleDateFormat formatter = new
    173      * SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy"); Date d =
    174      * formatter.parse(dstr);
    175      * 
    176      * @return
    177      */
    178     public static Date parseDateStr(String dstr) {
    179         Date d = null;
    180         SimpleDateFormat formatter = new SimpleDateFormat("EEEE MMM dd HH:mm:ss Z yyyy");
    181         try {
    182             d = formatter.parse(dstr);
    183         } catch (ParseException e) {
    184             formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    185             try {
    186                 d = formatter.parse(dstr);
    187             } catch (Exception e2) {
    188                 // TODO: handle exception
    189             }
    190         }
    191         return d;
    192     }
    193     
    194     @Test
    195     public void test() {
    196 
    197         String startTime = "2017-11-16";
    198         // Date time = Common.getDate(startTime+" 00:00:00","yyyy-MM-dd HH:mm:ss");
    199         // SimpleDateFormat fomat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    200         // System.out.println(fomat.format(time));
    201 
    202         // Date date = new Date();
    203         // Date date1 = new Date();
    204         // System.out.println(isSameDay(date,date1));
    205 
    206         System.out.println(parseDateStr(startTime));
    207     }
    208 
    209 }
  • 相关阅读:
    Linux学习笔记(二)
    Linux学习笔记(三)
    C++学习笔记一
    汇编总结
    Linux学习笔记(一)
    编辑距离算法
    Linux学习笔记(四)
    Linux学习笔记五
    extjs model的dirty属性能够查询store中某一个行是否改变过
    Ext.grid.Panel一定要有renderTo或autoRender属性,不然页面为空
  • 原文地址:https://www.cnblogs.com/NiceCui/p/7846812.html
Copyright © 2020-2023  润新知