日期操作的相关类

1 时间处理相关类

1.1 Date

Date date = new Date();
等同于
Date data = new Date(System.currentTimeMilis);

构造方法

1.2 Calendar

  • 时间计算的抽象类
  • GregorianCalendar继承了此类

1.3 DateFormat

  • 抽象类,SimpleDateFormat是其子类
  • 完成字符串(String)和时间对象(Date)的转化
  • format:Date转换字符串
  • parse:String转换成Date
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
		
String string = df.format(date);// Date时间转换成字符串

System.out.println(string);
String s = "2017-12-31";
Date date2 = df.parse(s);// String时间转换成Date
System.out.println(date2);

1.4 代码事例

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

public class Main {
    /**
     * @param args
     */
    public static void main(String[] args) throws ParseException {
        /**
         * Date有两种构造方法
         */

        // 1.无参构造
        //   获取的是当前的时间
        Date date = new Date();
        System.out.println("date:" + date);//date:Mon Mar 26 21:44:31 CST 2018
        // 2.传递参数,为毫秒数,历元(1970 01-01 00:00:00)
        Date date1 = new Date(11);
        System.out.println("date1:" + date1);//Thu Jan 01 08:00:00 CST 1970
        Date date2 = new Date(12);
        Date date3 = new Date(12);
        System.out.println(date2);

        /**
         * Date的一些常用方法
         */

        // 1 比较日期顺序
        System.out.println(date1.after(date2));// false
        System.out.println(date1.before(date2));// true

        System.out.println(date1.compareTo(date2));// -1
        // 2 比较日期是否相等
        System.out.println(date2.equals(date3));//true
        // 3 获取该日期距离1970 01-01 00:00:00的毫秒数,返回值是long
        System.out.println(date3.getTime()); // 12
        // 4 设置距离1970的毫秒数
        date3.setTime(100);
        System.out.println(date3.getTime());// 100


        /**
         * SimpleDateFormat
         */

        //SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
        // 它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。


        SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
        Date date4 = new Date();
        // 1 格式化  Date->String
        System.out.println(simpleDateFormat.format(date4));//18-3-26 下午10:30

        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
        System.out.println(simpleDateFormat1.format(date4));// 2018-03-26
        // 2 格式化  String -> Date

        String time = "2018-03-03";

        System.out.println(simpleDateFormat1.parse(time));// 2018-03-03


        /**
         * Calendar:
         */

        Calendar calendar = Calendar.getInstance();
        // 1 获取当前的时间 等同new Date()
        System.out.println("获取当前的时间:" + calendar.getTime());//Mon Mar 26 22:45:00 CST 2018
        // 2 获取当前的年
        System.out.println("今年是:" + calendar.get(Calendar.YEAR));//2018

        // 3 获取当前月份

        System.out.println("这个月是:" + calendar.get(Calendar.MONTH));// 2 注意点 月份会少一个月

        // 4 获取这个月的号数
        System.out.println("今天是几号:" + calendar.get(Calendar.DATE));// 26
        // 5 获取现在的小时
        System.out.println("现在是几点:" + calendar.get(Calendar.HOUR)); // 10
        // 6 获取现在的分钟
        System.out.println("现在是多少分钟:"+calendar.get(Calendar.MINUTE));
        // 7 获取现在是多少秒
        System.out.println("获取现在是多少秒:"+calendar.get(Calendar.SECOND));// 7
        // 8 今天是今年的多少周
        System.out.println("今天是今年的多少周:"+calendar.get(Calendar.WEEK_OF_YEAR)); // 13
        // 9 今天是这个月的多少周
        System.out.println("今天是这个月的多少周:"+calendar.get(Calendar.WEEK_OF_MONTH)); // 5
        // 10 今天是这个星期的第几天
        System.out.println("今天是这个星期的第几天:"+calendar.get(Calendar.DAY_OF_WEEK));// 3 注意点 星期是从周日开始的
        // 11 今天是这个月的第多少天
        System.out.println("今天是这个月的第多少天:"+calendar.get(Calendar.DAY_OF_MONTH));// 27
    }
}

2 获取前N天或者后N天的时间


    Calendar calendar = Calendar.getInstance();
    calendar.setTime(calendar.getTime());
    calendar.add(Calendar.DAY_OF_MONTH,-30);
    System.out.println(calendar.getTime()); // Sun Mar 25 22:55:21 CST 2018
    System.out.println(simpleDateFormat1.format(calendar.getTime()));

posted @ 2018-01-21 22:38  墮落方能自由  阅读(201)  评论(0编辑  收藏  举报