java中的Date(日期)和Calendar(日历)

date(日期)

java.util.Date

时间原点

Java中的时间原点,其对应的日期是1970年1月1日 。

1.创建日期对象

import java.util.Date;
public class Test3 {
	public static void main(String[] args) {
		//创建日期对象
		Date date = new Date();
		System.out.println(date);
		//获取当前时间的毫秒数 这个整数代表 从1970.1.1 08:00:00:000 开始 每经历一毫秒,增加1
		System.out.println(date.getTime());
	}
}

2.日期格式化

SimpleDateFormat

import java.text.SimpleDateFormat;
import java.util.Date;
public class Test3 {
	public static void main(String[] args) {
        //y 代表年
        //M 代表月
        //d 代表日
        //H 代表24进制的小时
        //h 代表12进制的小时
        //m 代表分钟
        //s 代表秒
        //S 代表毫秒
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
		System.out.println(sdf.format(new Date()));  //2019-09-16 17:08:06 208
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sdf1.format(new Date())); //2019-09-16 17:11:07
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
		System.out.println(sdf2.format(new Date())); //2019-09-16
		
	}
}

3.字符串转日期

package cn.it.test;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test3 {
	public static void main(String[] args) {
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		try {
			Date date = sdf.parse("2019-09-16 17:11:07");
			System.out.println(date);//Mon Sep 16 17:11:07 GMT+08:00 2019
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}

4.Calendar 日历简单操作

package cn.it.test;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test3 {
	public static void main(String[] args) {
		//获取日期相关信息
		Calendar cal = Calendar.getInstance();
		int year = cal.get(Calendar.YEAR); //获取年
		int month = cal.get(Calendar.MONTH) +1; //获取月,月是从0开始的所以要+1
		/**
		 * 获取日
		 *  DATE = DAY_OF_MONTH
		 *  在源码中这两个的值都是5
		 *  public final static int DATE = 5;
		 *  public final static int DAY_OF_MONTH = 5;
		 */
		int day = cal.get(Calendar.DATE); 
		int hour = cal.get(Calendar.HOUR);  //获取时-12小时制
		int hour1 = cal.get(Calendar.HOUR_OF_DAY); //获取时 -24小时制
		int i = cal.get(Calendar.MINUTE);  //获取当前分钟
		Date date = cal.getTime();  //获取当前日期时间  == new Date();
		
		//日期操作
		cal.setTime(date);
		cal.add(Calendar.YEAR, 1);//把日期往后增加一年.整数往后推,负数往前移动
		cal.add(Calendar.DAY_OF_MONTH, 1);//把日期往后增加一个月.整数往后推,负数往前移动
		cal.add(Calendar.DATE,1);//把日期往后增加一天.整数往后推,负数往前移动 
		cal.add(Calendar.WEEK_OF_MONTH, 1);//把日期往后增加一周.整数往后推,负数往前移动
	    date=cal.getTime();   //这个时间就是日期往后推一天的结果
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		System.out.println(sdf.format(date));
	}
}
经验分享 程序员 微信小程序 职场和发展