老王学习中

Calendar类:日历类

java.util.Calendar类:日历类
 	Calendar 类是一个抽象类,里面提供了很多操作日历字段的方法(YEAR,MONTH,DAY_OF_MONTH,HOUR) 
 	Calendar类无法直接创建对象,里面有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象。
 
    static Calendar getInttance() 使用默认时区和语言环境获取得一个日历。
 
 
 */
public class Demo01Calendar {
	public static void main(String[]args){
		//用一个父类,接受一个子类对象,就是
		Calendar c = Calendar.getInstance();//多态
		System.out.println(c);
	}

}

Calendar类得常用成员方法:
public int get(int field);返回给定日历字段得值
public void set(int field, int value);将给定得日历字段设置为定值。
public abstract void add(int field, int amount);根据日历规则,为给定得日历字段添加或减去指定得时间量。
public Date getTime();返回一个表示此Calendar时间值(从历元到现在得毫秒偏移量)得Date对象。
也就是:get获取,set设置,add增加或者减少,getTime把日历变成日期
成员方法得参数:
int field:日历类的字段,可以使用Calendar类的静态成员变量获取
public static final int YEAR = 1; 年
public static final int MONTH =2;月
public static final int DATE = 5;月中的某一天
public static final int DAY_OF_MONTH = 5;月中的某一天
public static final int HOUR = 10; 时
public static final int MINUTE = 12;分
public static final int SECOND = 13;秒

public class Demo02Calendar {
	public static void main(String[] args){
	//	demo01();1号
	//	demo02();//2号
	//	demo03();//3号add方法
	    demo04();//	
	}
	/*
	  public Date getTime();返回一个表示此Calendar时间值(从历元到现在得毫秒偏移量)得Date对象。
	 把日历对象,转换为日期对象
	 */
	private static void demo04(){
		//使用getInstance方法获取Calendar对象
		Calendar c = Calendar.getInstance();
		
		
	 	Date date = c.getTime();//返回就时一个日期
	 	System.out.println(date);
		
	}
	/*
	 public abstract void add(int field, int amount):根据日历规则,为给定得日历字段添加或减去指定得时间量。
	 把指定的字段增加/减少指定的值
	 参数:
	   int field:传递指定的日历字段(YEAR,MONTH...)
	   int amount :增加/减少指定的值
	          正数:增加
	          负数:减少
	 */
	private static void demo03(){
		
		Calendar c = Calendar.getInstance();
		
		//把年 增加2年
		c.add(Calendar.YEAR,2);
		//把月份减少3个月
		c.add(Calendar.MONTH,-3);
		
		
		
		int year = c.get(Calendar.YEAR);//调用get方法,使用静态的成员变量,返回的就是整数
		System.out.println(year);
		
		int month = c.get(Calendar.MONTH);//返回的就月份(西方的月份),
		System.out.println(month);
		
	
		int date = c.get(Calendar.DATE);//也是月中的某一天
		System.out.println(date);//输出的结果是一样,用那个都可以
		
		
	}
	/*2号
	 public void set(int field, int value):将指定的日历字段设置为给定值。
	 参数:
	 int field:传递指定的日历字段(YEAR,MONTH...)
	 int value:给指定字段设置的值 
	  
	 */
	private static void demo02(){
		//使用getInstance方法获取Calendar对象
		Calendar c = Calendar.getInstance();
		//设置年为9999
		c.set(Calendar.YEAR,9999);
		//设置 月为9月
		c.set(Calendar.MONTH,9);
		//设置 日为9日
		c.set(Calendar.DATE,9);
		
		
		//同时设置年月日,可以使用set的方法(重载方法)
		c.set(8888,8,8);
		
		int year = c.get(Calendar.YEAR);//调用get方法,使用静态的成员变量,返回的就是整数
		System.out.println(year);
		
		int month = c.get(Calendar.MONTH);//返回的就月份(西方的月份),
		System.out.println(month);
		
	
		int date = c.get(Calendar.DATE);//也是月中的某一天
		System.out.println(date);//输出的结果是一样,用那个都可以
		
		
	}
	
	
	/* 1号
	 public int get(int field):返回给定字段的值。
	 参数:传递指定的日历字段(YEAR,MONTH...) 
	 返回值:日历字段代表的具体的值
	 */
	private static void demo01(){
		//使用getInstance方法获取Calendar对象
		Calendar c = Calendar.getInstance();
		int year = c.get(Calendar.YEAR);//调用get方法,使用静态的成员变量,返回的就是整数
		System.out.println(year);//返回的就当年也就是今年、、2020
		
		int month = c.get(Calendar.MONTH);//返回的就月份(西方的月份),
		System.out.println(month);//西方的月份0-11.东方:1-12
		
	//	int date = c.get(Calendar.DAY_OF_MONTH);//月中的某一天
		int date = c.get(Calendar.DATE);//也是月中的某一天
		System.out.println(date);//输出的结果是一样,用那个都可以
		
	}

}

java.util.Deta:表示日期和时间的类
java.util.Deta:表示日期和时间的类
类Deta 表示特定的瞬间,精确到毫秒。
毫秒:千分之一秒,1000毫秒 = 1秒
特定的瞬间: 以恶搞时间点,一刹那时间
2088-08-08 09:55:33:333 瞬间
2088-08-08 09:55:33:333 瞬间
2088-08-08 09:55:33:333 瞬间
。。。。
毫秒值的作用:可以对时间和日期进行计算
2099-01-03 到2088-01-01 中间一共有多少天
可以把日期转换成毫秒进行计算,计算完毕,然后把毫秒装换为日期

把日期转换为毫秒:
当前的日期:2088-01-01
时间原点(0毫秒):在API 档中,1970年1月1日00:00:00(是英国格林威治的时间)
就是计算当前日期到时间原点之间一共经理了多少毫秒 (1597712653810)

注意事项:
中国属于东八区,会把时间增加8个小时
1970年1月1日08:00:00(中国时间是)

把毫秒转换为日期:(API文档)
1天= 24 * 60 *60 = 86400 秒 = 86400 * 1000 = 864000000 毫秒

public class Demo01Date {

	public static void main(String[]args){
		System.out.println(System.currentTimeMillis());//获取当前系统时间到1970年1月1日00:00:00经历了多少毫秒
	}
}
import java.util.Date;
//Date类的构造方法和成员方法
//有两个构造方法和一个成员方法

public class Demo02Date {

	public static void main(String[]args){
//		demo01();空参数构造方法
//		demo02();//带参数构造方法
		demo03();//long getTime() 成员方法
	}
	//long getTime() 把日期装换为毫秒值(相当于currentTimeMillis()方法)
	//返回自1970年1月1日00:00:00 GMT 以来此Date对象表示的毫秒数。
	private static void demo03(){
		Date date = new Date();
		long time = date.getTime();//返回long类型的毫秒值
		System.out.println(time);//1597714495502
	}
	
	//Date类的带参数构造方法
	//Date(long date):传递毫秒值,把毫秒值转换为Date日期
	private static void demo02(){
		Date date = new Date(0L);
		System.out.println(date);//Thu Jan 01 08:00:00 CST 1970
		
		date = new Date(1597712653810L);
		System.out.println(date);//Tue Aug 18 09:04:13 CST 2020
	}
	
	// Date类的空参数构造方法 
	// Date()获取当前系统的日期和时间
	 
	public static void demo01(){
		Date date = new Date();
		System.out.println(date);//Tue Aug 18 09:20:18 CST 2020
		
	}
}

java.text.DateFormat:是日期/时间格式化「子类的抽象类」
格式化(也就是日期->文本),解析(文本->日期)
成员方法:
String format(Date date) 按照的指定的模式,把Date日期,格式化为符合模式的字符串。
Date parse(String source) 把符合模式的字符串,解析为Date日期

DateFormat类是一个抽象类,无法孩直接创建对象使用,可以使用DateFormat类的子类
//子类 , //继承
java.text.SimpleDateFormat extends DateFormat

构造方法:
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
构造方法的参数:
String pattern :传递指定的模式
模式:区分大小写的
y 年
M 月
d 日
H 小时
m 分
s 秒
S 毫秒
写对应的模式,会把模式替换为对应的日期和时间
“yyy-MM-dd HH:mm:ss”
注意事项:
模式中的字母不能更改,连接模式的符号可以改变
“yyy年MM月dd日 HH时mm分ss秒”

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo01DateFormat {           //异常处理
	public static void main(String[]args) throws ParseException{
//		demo01();	
		demo02();
		
	}
	/*
	 使用DateFormat类中的方法parse,把文本解析为日期
	 使用步骤:
	 1,创建SimpleDateFormat对象,构造方法中传递指定的模式
	 2,调用SimpleDateFormat对象中的方法parse,把符合构造方法中字符串,解析为Date日期
	 注意事项:
	 	public Date parse(String source)throws ParseException
	 	parse方法声明类一个异常叫ParseException
	 	如果字符串和构造方法的模式不一样,那么程序就会抛出此异常
	 	调用一个抛出类异常的方法,就必须处理这个异常,要么throws继续抛出这个异常
	 	要么try catch自己处理 
	 */                            //异常处理
	private static void demo02() throws ParseException{
		//1.创建SimpleDateFormat对象,构造方法中传递指定的模式
		SimpleDateFormat sdf = new SimpleDateFormat( "yyy年MM月dd日 HH时mm分ss秒" );
		//2,调用SimpleDateFormat对象中的方法parse,把符合构造方法中字符串,解析为Date日期
		//   Date parse(String source) 把符合模式的字符串,解析为Date日期
		Date date = sdf.parse("2020年08月18日 13时29分22秒");
		System.out.println(date);//Tue Aug 18 13:29:22 CST 2020
	}
	/*
	 使用DateFormat类中的方法format,把日期格式化为文本
	 使用步骤:
	    1,创建SimpleDateFormat对象,构造方法中传递指定的模式
	    2,调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)式化为符合模式的字符串(文本)
	 */
	private static void demo01(){
		//1.创建SimpleDateFormat对象,构造方法中传递指定的模式
		SimpleDateFormat sdf = new SimpleDateFormat( "yyy年MM月dd日 HH时mm分ss秒" );
		//2.调用SimpleDateFormat对象中的方法format,按照构造方法中指定的模式,把Date日期格式化为符合模式的字符串(文本)
		//String format(Date date)按照指定模式,把Date日期,格式化为符合模式的字符串
		Date date = new Date();
		String d = sdf.format(date);
		System.out.println(date);//Tue Aug 18 13:29:22 CST 2020
		System.out.println(d);//2020年08月18日 13时29分22秒
		
	}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值