日历类和日期类的小结


Calendar类:日历类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 
日历字段之间的转换提供了一些方法,
并为操作日历字段(例如获得下星期的日期)提供了一些方法
 是一个抽象类,如何实例化?
public static Calendar getInstance() :通过一个静态功能来创建日历了对象
public class CalendarDemo {
public static void main(String[] args) {
	//Calendar不能被实例化,通过静态方法
	Calendar c =Calendar.getInstance();
	//通过get方法显示当前年份,月份等
	int year =c.get(Calendar.YEAR);
	int month = c.get(Calendar.MONTH);
	int date = c.get(Calendar.DATE);
	System.out.println(year+"年"+(month+1)+"月"+date+"日");
	
}
}

Calendar中的两个常用方法:

public abstract void add(int field,int amount)根据日历的规则,为给定的日历字段添加或减去指定的时间量 
(这个方法常用)
 public final void set(int year, int month,int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
public class CalendarDemo2 {
 public static void main(String[] args) {
	Calendar c =Calendar.getInstance();//创建日历类对象
      int year =	c.get(Calendar.YEAR);
      System.out.println(year+"年");
          c.add(Calendar.YEAR, +5);//使用add方法,无返回值
          int year1 = c.get(Calendar.YEAR); //获取当前年份
          System.out.println(year1+"年");
}
}
下面是一个Colender类的练习
import java.util.Calendar;
import java.util.Scanner;

/**
 * 需求:获取任意一年的二月有多少天  (改进:键盘录入一个年份)
 *
 *分析:
 *	1)键盘录入任意一个年份
 *	2)创建日历类对象
 *	3)设置年月日
 *		set(录入year,2,1) ; //实际是3月1日
 *	4)再利用add(int field,int amount) : 在这里只需要将日期往前退一天即可
 */
public class CalendarTest {
public static void main(String[] args) {
	//创建键盘录入年份
	Scanner sc = new Scanner(System.in);
	//提示用户输入一个年份
	System.out.println("请输入一个年份:");
	int year = sc.nextInt();
	//创建日历对象
	Calendar c = Calendar.getInstance();
	//设置年份和月份,最后输出
	 c.set(year, 2,1);
	 c.add(Calendar.DATE, -1);
	int date= c.get(Calendar.DATE);
	System.out.println("该年的二月份有"+date+"天");
	 
	 
}
}

Date日期类

java.util.Date:
类 Date 表示特定的瞬间,精确到毫秒
 构造方法:
public Date()表示分配它的时间(精确到毫秒)。
        public Date(long date):创建一个日期对象,指定毫秒值 (需要将long 时间毫秒值转换成Date对象)
public void setTime(long time):设置毫秒值
public class DateDemo {
public static void main(String[] args) {
	Date d = new Date();
	System.out.println(d);
   Date dd=new  Date(1000); 
	System.out.println(dd);
}
}

public long getTime()

将Date--->long的毫秒值
public class DateDemo2 {
public static void main(String[] args) {
	Date d = new Date ();
	long  l =d.getTime();
	System.out.println(l);
}
}

 重点:Date的日期格式和日期的文本格式:String类型 之间进行转换


Date---->String(格式化)


 String-->Date(解析)

中间的转换:使用中一个中间类:DateFormat,并且DateFormat是一个抽象类,抽象意味着不能实例化,所以应该考虑用它的子类:
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpelDateFormat的构造方法:
public SimpleDateFormat(String pattern) :构造一个SimpleDateFormat对象,根据pattern(模式:规则)

SimpleDateFormat sdf = new SimpleDateFormat("xxx年xx月xx日") ;

  日期和时间模式
  
  年: yyyy
月: MM
   日: dd
 
   时: hh
  分: mm
  秒: ss

实际开发中:牵扯时间的东西,经常Date--String  String--Date

public class DateDemo3 {
public static void main(String[] args) throws ParseException {
	//创建日期类对象
	//格式化3步走
	//1.获取当前的日期类对象
	//2.创建SimpleDateFormat类的对象
	//3.simpelDateFormat类调用format()方法进行格式化,返回一个String 类型的值
	
	Date d = new Date ();
	SimpleDateFormat  sdf  =new SimpleDateFormat("yyyy-MM-dd");
	String Str = sdf.format(d);
	System.out.println("当前时间是:"+Str);
	System.out.println("-----------------------------------------");
	//解析日期3步走
	//1.创建字符串类型的日期
	//2.创建中间类SimpleDateFormat的对象,!!!注意:构造方法中的格式必须和String类型一致
	//3.simpelDateFormat类调用parse()方法,返回值是Date类型的
	String Str1 = "1995-09-10";
	SimpleDateFormat  sdf1 = new SimpleDateFormat("yyyy-MM-dd");
	Date dd =sdf1.parse(Str1);
	System.out.println(dd);
	
}
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值