• 日期工具类


    日期工具类,提供对日期的格式化和转换方法、获取区间日期、指定日期、每月最后一天等。

     

    源码如下:(点击下载 -DateUtil.javacommons-lang-2.6.jar )

      1 import java.text.DateFormat;
      2 import java.text.ParseException;
      3 import java.text.SimpleDateFormat;
      4 import java.util.ArrayList;
      5 import java.util.Calendar;
      6 import java.util.Date;
      7 import java.util.GregorianCalendar;
      8 import java.util.List;
      9 import org.apache.commons.lang.StringUtils;
     10 
     11 /**
     12  * 日期工具类
     13  * 
     14  */
     15 public class DateUtil {
     16 
     17     // 默认日期格式
     18     public static final String DATE_DEFAULT_FORMAT = "yyyy-MM-dd";
     19 
     20     // 默认时间格式
     21     public static final String DATETIME_DEFAULT_FORMAT = "yyyy-MM-dd HH:mm:ss";
     22 
     23     public static final String TIME_DEFAULT_FORMAT = "HH:mm:ss";
     24 
     25     // 日期格式化
     26     private static DateFormat dateFormat = null;
     27 
     28     // 时间格式化
     29     private static DateFormat dateTimeFormat = null;
     30 
     31     private static DateFormat timeFormat = null;
     32 
     33     private static Calendar gregorianCalendar = null;
     34 
     35     static {
     36         dateFormat = new SimpleDateFormat(DATE_DEFAULT_FORMAT);
     37         dateTimeFormat = new SimpleDateFormat(DATETIME_DEFAULT_FORMAT);
     38         timeFormat = new SimpleDateFormat(TIME_DEFAULT_FORMAT);
     39         gregorianCalendar = new GregorianCalendar();
     40     }
     41 
     42     /**
     43      * 日期格式化yyyy-MM-dd
     44      * 
     45      * @param date
     46      * @return
     47      */
     48     public static Date formatDate(String date, String format) {
     49         try {
     50             return new SimpleDateFormat(format).parse(date);
     51         } catch (ParseException e) {
     52             e.printStackTrace();
     53         }
     54         return null;
     55     }
     56 
     57     /**
     58      * 日期格式化yyyy-MM-dd
     59      * 
     60      * @param date
     61      * @return
     62      */
     63     public static String getDateFormat(Date date) {
     64         return dateFormat.format(date);
     65     }
     66 
     67     /**
     68      * 日期格式化yyyy-MM-dd HH:mm:ss
     69      * 
     70      * @param date
     71      * @return
     72      */
     73     public static String getDateTimeFormat(Date date) {
     74         return dateTimeFormat.format(date);
     75     }
     76 
     77     /**
     78      * 时间格式化
     79      * 
     80      * @param date
     81      * @return HH:mm:ss
     82      */
     83     public static String getTimeFormat(Date date) {
     84         return timeFormat.format(date);
     85     }
     86 
     87     /**
     88      * 日期格式化
     89      * 
     90      * @param date
     91      * @param 格式类型
     92      * @return
     93      */
     94     public static String getDateFormat(Date date, String formatStr) {
     95         if (StringUtils.isNotBlank(formatStr)) {
     96             return new SimpleDateFormat(formatStr).format(date);
     97         }
     98         return null;
     99     }
    100 
    101     /**
    102      * 日期格式化
    103      * 
    104      * @param date
    105      * @return
    106      */
    107     public static Date getDateFormat(String date) {
    108         try {
    109             return dateFormat.parse(date);
    110         } catch (ParseException e) {
    111             e.printStackTrace();
    112         }
    113         return null;
    114     }
    115 
    116     /**
    117      * 时间格式化
    118      * 
    119      * @param date
    120      * @return
    121      */
    122     public static Date getDateTimeFormat(String date) {
    123         try {
    124             return dateTimeFormat.parse(date);
    125         } catch (ParseException e) {
    126             e.printStackTrace();
    127         }
    128         return null;
    129     }
    130 
    131     /**
    132      * 获取当前日期(yyyy-MM-dd)
    133      * 
    134      * @param date
    135      * @return
    136      */
    137     public static Date getNowDate() {
    138         return DateUtil.getDateFormat(dateFormat.format(new Date()));
    139     }
    140 
    141     /**
    142      * 获取当前日期星期一日期
    143      * 
    144      * @return date
    145      */
    146     public static Date getFirstDayOfWeek() {
    147         gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
    148         gregorianCalendar.setTime(new Date());
    149         gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); // Monday
    150         return gregorianCalendar.getTime();
    151     }
    152 
    153     /**
    154      * 获取当前日期星期日日期
    155      * 
    156      * @return date
    157      */
    158     public static Date getLastDayOfWeek() {
    159         gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
    160         gregorianCalendar.setTime(new Date());
    161         gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); // Monday
    162         return gregorianCalendar.getTime();
    163     }
    164 
    165     /**
    166      * 获取日期星期一日期
    167      * 
    168      * @param 指定日期
    169      * @return date
    170      */
    171     public static Date getFirstDayOfWeek(Date date) {
    172         if (date == null) {
    173             return null;
    174         }
    175         gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
    176         gregorianCalendar.setTime(date);
    177         gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek()); // Monday
    178         return gregorianCalendar.getTime();
    179     }
    180 
    181     /**
    182      * 获取日期星期一日期
    183      * 
    184      * @param 指定日期
    185      * @return date
    186      */
    187     public static Date getLastDayOfWeek(Date date) {
    188         if (date == null) {
    189             return null;
    190         }
    191         gregorianCalendar.setFirstDayOfWeek(Calendar.MONDAY);
    192         gregorianCalendar.setTime(date);
    193         gregorianCalendar.set(Calendar.DAY_OF_WEEK, gregorianCalendar.getFirstDayOfWeek() + 6); // Monday
    194         return gregorianCalendar.getTime();
    195     }
    196 
    197     /**
    198      * 获取当前月的第一天
    199      * 
    200      * @return date
    201      */
    202     public static Date getFirstDayOfMonth() {
    203         gregorianCalendar.setTime(new Date());
    204         gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
    205         return gregorianCalendar.getTime();
    206     }
    207 
    208     /**
    209      * 获取当前月的最后一天
    210      * 
    211      * @return
    212      */
    213     public static Date getLastDayOfMonth() {
    214         gregorianCalendar.setTime(new Date());
    215         gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
    216         gregorianCalendar.add(Calendar.MONTH, 1);
    217         gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);
    218         return gregorianCalendar.getTime();
    219     }
    220 
    221     /**
    222      * 获取指定月的第一天
    223      * 
    224      * @param date
    225      * @return
    226      */
    227     public static Date getFirstDayOfMonth(Date date) {
    228         gregorianCalendar.setTime(date);
    229         gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
    230         return gregorianCalendar.getTime();
    231     }
    232 
    233     /**
    234      * 获取指定月的最后一天
    235      * 
    236      * @param date
    237      * @return
    238      */
    239     public static Date getLastDayOfMonth(Date date) {
    240         gregorianCalendar.setTime(date);
    241         gregorianCalendar.set(Calendar.DAY_OF_MONTH, 1);
    242         gregorianCalendar.add(Calendar.MONTH, 1);
    243         gregorianCalendar.add(Calendar.DAY_OF_MONTH, -1);
    244         return gregorianCalendar.getTime();
    245     }
    246 
    247     /**
    248      * 获取日期前一天
    249      * 
    250      * @param date
    251      * @return
    252      */
    253     public static Date getDayBefore(Date date) {
    254         gregorianCalendar.setTime(date);
    255         int day = gregorianCalendar.get(Calendar.DATE);
    256         gregorianCalendar.set(Calendar.DATE, day - 1);
    257         return gregorianCalendar.getTime();
    258     }
    259 
    260     /**
    261      * 获取日期后一天
    262      * 
    263      * @param date
    264      * @return
    265      */
    266     public static Date getDayAfter(Date date) {
    267         gregorianCalendar.setTime(date);
    268         int day = gregorianCalendar.get(Calendar.DATE);
    269         gregorianCalendar.set(Calendar.DATE, day + 1);
    270         return gregorianCalendar.getTime();
    271     }
    272 
    273     /**
    274      * 获取当前年
    275      * 
    276      * @return
    277      */
    278     public static int getNowYear() {
    279         Calendar d = Calendar.getInstance();
    280         return d.get(Calendar.YEAR);
    281     }
    282 
    283     /**
    284      * 获取当前月份
    285      * 
    286      * @return
    287      */
    288     public static int getNowMonth() {
    289         Calendar d = Calendar.getInstance();
    290         return d.get(Calendar.MONTH) + 1;
    291     }
    292 
    293     /**
    294      * 获取当月天数
    295      * 
    296      * @return
    297      */
    298     public static int getNowMonthDay() {
    299         Calendar d = Calendar.getInstance();
    300         return d.getActualMaximum(Calendar.DATE);
    301     }
    302 
    303     /**
    304      * 获取时间段的每一天
    305      * 
    306      * @param 开始日期
    307      * @param 结算日期
    308      * @return 日期列表
    309      */
    310     public static List<Date> getEveryDay(Date startDate, Date endDate) {
    311         if (startDate == null || endDate == null) {
    312             return null;
    313         }
    314         // 格式化日期(yy-MM-dd)
    315         startDate = DateUtil.getDateFormat(DateUtil.getDateFormat(startDate));
    316         endDate = DateUtil.getDateFormat(DateUtil.getDateFormat(endDate));
    317         List<Date> dates = new ArrayList<Date>();
    318         gregorianCalendar.setTime(startDate);
    319         dates.add(gregorianCalendar.getTime());
    320         while (gregorianCalendar.getTime().compareTo(endDate) < 0) {
    321             // 加1天
    322             gregorianCalendar.add(Calendar.DAY_OF_MONTH, 1);
    323             dates.add(gregorianCalendar.getTime());
    324         }
    325         return dates;
    326     }
    327 
    328     /**
    329      * 获取提前多少个月
    330      * 
    331      * @param monty
    332      * @return
    333      */
    334     public static Date getFirstMonth(int monty) {
    335         Calendar c = Calendar.getInstance();
    336         c.add(Calendar.MONTH, -monty);
    337         return c.getTime();
    338     }
    339 }
  • 相关阅读:
    android 启动报错
    android 百度地图
    android LayoutInflater使用
    spring mvc No mapping found for HTTP request with URI [/web/test.do] in DispatcherServlet with name 'spring'
    sql mysql和sqlserver存在就更新,不存在就插入的写法(转)
    jsp include
    json 解析
    css
    Scrapy组件之item
    Scrapy库安装和项目创建
  • 原文地址:https://www.cnblogs.com/zhoubang521/p/5200593.html
Copyright © 2020-2023  润新知