java 时间类

 *java 中现在最好用的还是java8的时间类Java 8 LocalDateTime (时间+日期)。它分为LocalTime :  只包括时间  和 LocalDate : 只包括日期*。
 这是它的解释:[添加链接描述](https://www.cnblogs.com/wt20/p/8179118.html)
在这里插入代码片 public class TimeTest {`
    @Test
    public void testTime() {
      //这两个类似
      //LocalTime localTime=LocalTime.now();
       //LocalDate localDate=LocalDate.now();
        LocalDateTime time = LocalDateTime.now();
 
        System.out.println(time.toString()); //字符串表示
        System.out.println(time.toLocalTime()); //获取时间(LocalTime)
        System.out.println(time.toLocalDate()); //获取日期(LocalDate)
        System.out.println(time.getDayOfMonth()); //获取当前时间月份的第几天
        System.out.println(time.getDayOfWeek());  //获取当前周的第几天
        System.out.println(time.getDayOfYear());  //获取当前时间在该年属于第几天
        System.out.println(time.getHour());
        System.out.println(time.getMinute());
        System.out.println(time.getMonthValue());
        System.out.println(time.getMonth());
        System.out.println("-----------------------------------");
        //格式化输出
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("YYYY/MM/dd HH:mm:ss");
        System.out.println(time.format(formatter));
        //构造时间
        LocalDateTime startTime = LocalDateTime.of(2018, 1, 1, 20, 31, 20);
        LocalDateTime endTime = LocalDateTime.of(2018, 1, 3, 20, 31, 20);
        //比较时间
        System.out.println(time.isAfter(startTime));
        System.out.println(time.isBefore(endTime));
 
        //时间运算,相加相减
        System.out.println(time.plusYears(2)); //加2年
        System.out.println(time.plusDays(2)); //加两天
        System.out.println(time.minusYears(2)); //减两年
        System.out.println(time.minusDays(2)); //减两天
 
        //获取毫秒数(使用Instant)
        System.out.println(time.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
        //获取秒数(使用Instant)
        System.out.println(time.atZone(ZoneId.systemDefault()).toInstant().getEpochSecond());
    }
 
}
    
    另外附上一个java 的时间util:
         package com.cnpc.epai.xnprocessmanagement.util;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {
    public static final SimpleDateFormat MONTH_FORMAT = new SimpleDateFormat("yyyyMM");
    public static BigDecimal getMaxDay(String source){
        Calendar calendar = Calendar.getInstance();
        Date date = null;
        try {
            date = MONTH_FORMAT.parse(source);
        } catch (ParseException e) {
            e.printStackTrace();
            throw new RuntimeException("日期格式错误");
        }
        calendar.setTime(date);
        int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
        return new BigDecimal(maxDay);
    }
    
    /**
     *功能描述 
     * @author 李静
     * @date 2019-3-15 13:15
     * @param  {获取格式为 yyyy-MM-dd HH:mm:ss 的时间}
     * @return 
     */
    public static Date getNowTime(){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String time= sdf.format( new Date());
        Date parse=null;
        try {
             parse = sdf.parse(time);
        } catch (ParseException e) {
            e.printStackTrace();
            throw new RuntimeException("日期格式错误");
        }
       return parse;
    }

     /**
      *功能描述
      * @author 李静
      * @date 2019-3-25 18:25
      * @param [inputDate, number]
      * @return java.lang.String
      */
    //传入date 返回指定月份之后的Str格式时间(YYYY.MM.DD格式字符串)
    public static String afterMonthStr( Date inputDate, int number )
    {
        Calendar c = Calendar.getInstance();//获得一个日历的实例
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
        c.setTime(inputDate);//设置日历时间
        c.add(Calendar.MONTH,number);//增加月数
        String strDate = sdf.format(c.getTime());

        return strDate;
    }

     /**
      *功能描述
      * @author 李静
      * @date 2019-3-25 18:26
      * @param [date]
      * @return java.util.Date
      */
    //获取指定日期的当月最后一日时间
    public static Date lastDay( Date date )
    {
        Calendar c = Calendar.getInstance();
        c.setTime(date);//设置日历时间
        c.set(Calendar.DATE, c.getActualMaximum(Calendar.DATE));

        return c.getTime();
    }

    /**
     *功能描述
     * @author 李静
     * @date 2019-3-25 18:26
     * @param [yearMonStr]
     * @return java.util.Date
     */
    //将yyyyMM时间格式字符串字符串转换为date日期
    public static Date transferStrToDate( String yearMonStr )
    {
        Date date = null;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
        try
        {
            date = sdf.parse( yearMonStr );
        }
        catch ( ParseException e )
        {
            e.printStackTrace();
        }

        return date;
    }

    /**
     *功能描述
     * @author 李静
     * @date 2019-3-25 18:26
     * @param [inputDate, number]
     * @return java.lang.String
     */
    //传入date 返回指定月份之后的Str格式时间(YYYYMM格式字符串)
    public static String afterMonthQueryStr( Date inputDate, int number )
    {
        Calendar c = Calendar.getInstance();//获得一个日历的实例
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
        c.setTime(inputDate);//设置日历时间
        c.add(Calendar.MONTH,number);//增加月数
        String strDate = sdf.format(c.getTime());

        return strDate;
    }

    /**
     *功能描述
     * @author 李静
     * @date 2019-3-25 18:26
     * @param [date]
     * @return java.lang.String
     */
    //将date对象转换为YYYYMM格式字符串
    public static String toYearMonthStr( Date date )
    {
        SimpleDateFormat sf = new SimpleDateFormat( "YYYYMM" );
        String dateStr = sf.format( date );

        return dateStr;
    }


    /**
     *功能描述
     * @author 李静
     * @date 2019-3-25 18:26
     * @param [date]
     * @return java.lang.String
     */
    //将date对象转换为YYYY.MM.DD格式字符串
    public static String yearMonthDay( Date date )
    {
        SimpleDateFormat sf = new SimpleDateFormat( "YYYY.MM.DD" );
        String dateStr = sf.format( date );

        return dateStr;
    }

猜你喜欢

转载自blog.csdn.net/weixin_41987908/article/details/89178103