java 的Date 日期相关操作

  1. String 与 Date互转
    (1)基于SimpleDateFormat实现:
    package com.bky.df;
    
    import java.text.ParseException;
    import java.text.ParsePosition;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class DateLangUtils{
        public static void main(String[] args) throws ParseException {
           Date nowDate = new Date();
           String formatString = "yyyy-MM-dd HH:mm:ss";
           String dateString = "2018-12-02 16:33:15";
           System.out.println(getString(nowDate, formatString));
           System.out.println(getDate(dateString, formatString));
           System.out.println(getDatePos(dateString, formatString));
        }
    
        /**
         * 使用SimpleDateFormat格式化Date
         * 
         * @param date
         * @param formatString
         * @return
         */
        public static String getString(Date date, String formatString) {
            SimpleDateFormat formatter = new SimpleDateFormat(formatString);
            return formatter.format(date);
        }
        
        /**
         * 使用SimpleDateFormat解析日期字符串
         * 
         * @param dateString
         * @param formatString
         * @return
         * @throws ParseException
         */
        public static Date getDate(String dateString, String formatString) throws ParseException {
            SimpleDateFormat formatter = new SimpleDateFormat(formatString);
            return formatter.parse(dateString);
        }
    
        /**
         * 使用SimpleDateFormat解析日期字符串
         * 
         * @param dateString
         * @param formatString
         * @return
         */
        public static Date getDatePos(String dateString, String formatString) {
            SimpleDateFormat formatter = new SimpleDateFormat(formatString);
            return formatter.parse(dateString, new ParsePosition(0));
        }
    }

    (2)使用commons组件实现

    import java.text.ParseException;
    import java.util.Date;
    
    import org.apache.commons.lang3.time.DateFormatUtils;
    import org.apache.commons.lang3.time.DateUtils;
    
    public static void main(String[] args) throws ParseException {
        Date nowDate = new Date();
        String formatString = "yyyy-MM-dd HH:mm:ss";
        String dateString = "2018-12-02 16:33:15";
        System.out.println(DateFormatUtils.format(nowDate, formatString));
        System.out.println(DateUtils.parseDate(dateString, formatString));
    }
  2. 对日期的相关操作
    基于Calendar实现
    Calendar cal = Calendar.getInstance();
    // 设置Calendar时间(1.Date 2.longofmills)
    cal.setTime(new Date());
    cal.setTimeInMillis(System.currentTimeMillis());
    
    // 设置年月日,时分秒,毫秒
    cal.set(Calendar.YEAR, cal.get(Calendar.YEAR));
    // Calendar.MONTH 从0开始表示1月,需要转换展示/设置
    cal.set(Calendar.MONTH, cal.get(Calendar.MONTH));
    cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH));
    // 24小时制
    cal.set(Calendar.HOUR_OF_DAY, cal.get(Calendar.HOUR_OF_DAY));
    // 12小时制
    cal.set(Calendar.HOUR, cal.get(Calendar.HOUR));
    cal.set(Calendar.MINUTE, cal.get(Calendar.MINUTE));
    cal.set(Calendar.SECOND, cal.get(Calendar.SECOND));
    cal.set(Calendar.MILLISECOND, cal.get(Calendar.MILLISECOND));
    
    // 设置与星期相关参数
    // 设置当周星期周几(1为星期日,7为星期六)
    cal.set(Calendar.DAY_OF_WEEK, cal.get(Calendar.DAY_OF_WEEK));
    // 设置当月第几个星期(默认地区是从星期日开始算,以日历计算第几周)
    cal.set(Calendar.WEEK_OF_MONTH, cal.get(Calendar.WEEK_OF_MONTH));
    // 设置当月第几个星期(设置按当月的天数算第几周,7天一周)
    cal.set(Calendar.DAY_OF_WEEK_IN_MONTH, cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));
    // 设置一年中第几个星期
    cal.set(Calendar.WEEK_OF_YEAR, cal.get(Calendar.WEEK_OF_YEAR));
    
    // 设置当月第一天
    cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    
    // 设置当月最后一天
    cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);

猜你喜欢

转载自www.cnblogs.com/aben-blog/p/8907749.html