Java中的 时间日历的操作类(Calendar)与时间日期操作类(Date)

Java中的 时间日历的操作类(Calendar)与时间日期操作类(Date)

一、Calendar如何创建对象,有哪些常用方法?

Calendar类的定义

public abstract class Calendar  他是一个抽象类,它不能通过new+构造方法的方式构建对象

构造方法:

protected

Calendar() 构建具有默认时区和默认的 FORMAT语言环境的日历。

protected

Calendar(TimeZone zone, Locale aLocale) 构造具有指定时区和区域设置的日历。

Calendar类的定义和它的protected修饰符修饰构造方法决定Calendar类的对象创建很特殊不会是new+构造方法的方式

通过本类提供静态方法完成

static Calendar

getInstance() 使用默认时区和区域设置获取日历

static Calendar

getInstance(Locale aLocale) 使用默认时区和指定的区域设置获取日历。

static Calendar

getInstance(TimeZone zone) 使用指定的时区和默认语言环境获取日历。

static Calendar

getInstance(TimeZone zone, Locale aLocale) 获取具有指定时区和区域设置的日历。

//创建Calendar类对象

Calendar calendar=Calendar.getInstance();

日历的作用1.看日子  2.定日子

int

get(int field) 返回给定日历字段的值。

参数:int field--具体查询的问题

        Calendar 的静态变量

void

set(int year, int month, int date, int hourOfDay, int minute, int second) 

设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。

Date

getTime()返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。

Calendar 的静态变量

static int

YEAR get现场编号和 set表示年份。

static int

MONTH get和 set字段号表示月份。

static int

DAY_OF_MONTH get字段编号和 set本月的日期。

static int

DAY_OF_WEEK get字段编号和 set表示一周中的日期。

static int

DAY_OF_YEAR get和 set字段编号, set本年度的日数。

static int

WEEK_OF_YEAR get和 set字段编号, set本年度的周数。

static int

WEEK_OF_MONTH get和 set字段编号, set当月的周数。

例如:

package com.wangxing.test1;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class TestCalendar {

	public static void main(String[] args) {
		//创建Calendar类对象
		Calendar calendar=Calendar.getInstance();
		//int get(int field) 返回给定日历字段的值。  
		//int field---给定的日历字段
		//YEAR---年
		System.out.println("YEAR--"+calendar.get(Calendar.YEAR));
		//MONTH --月【从0开始数】
		System.out.println("MONTH--"+(calendar.get(Calendar.MONTH)+1));
		//DAY_OF_MONTH--月中的天
		System.out.println("DAY_OF_MONTH--"+calendar.get(Calendar.DAY_OF_MONTH));
		//DAY_OF_WEEK---周中的星期【从星期天开始数】
		System.out.println("DAY_OF_WEEK--"+calendar.get(Calendar.DAY_OF_WEEK));
		//DAY_OF_YEAR---年中的天
		System.out.println("DAY_OF_YEAR--"+calendar.get(Calendar.DAY_OF_YEAR));
		//WEEK_OF_YEAR--年中的周
		System.out.println("WEEK_OF_YEAR--"+calendar.get(Calendar.WEEK_OF_YEAR));
		//WEEK_OF_MONTH--月中的周 
		System.out.println("WEEK_OF_MONTH--"+calendar.get(Calendar.WEEK_OF_MONTH));
		//set(int year, int month, int date, int hourOfDay, int minute, int second) 
		//设置字段中的值 YEAR , MONTH , DAY_OF_MONTH , HOUR_OF_DAY , MINUTE和 SECOND 。
		calendar.set(2020, 9, 1, 12, 30,30);
		Date  date =calendar.getTime();
		System.out.println(date);
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
		String newdate=sdf.format(date);
		System.out.println(newdate);
		}
}

二、Date类如何创建对象,有哪些常用方法?

          Date类---java.util.Date---子类---java.sql.Date

          java.util.Date的子类是java.sql.Date

          Date类的定义---public class Date

          Date表示特定的时间。

构造方法:

     Date() 创建一个 Date对象,保存了当前系统时间。【格式不符合我们的认识】

     Date(long date) 创建一个 Date对象,保存的是从标准基准时间(称为“历元(epoch)”)即1970年1月1日     00:00:00 GMT(格林威治标准时)到当下所经过的毫秒数的当下时间。

     date - 1970年1月1日00:00:00 GMT以来的毫秒数。

例如:

package com.wangxing.test1;
import java.util.Date;
public class DateTest1 {
	public static void main(String[] args) {
		//Date() 创建一个 Date对象,保存了当前系统时间。【格式不符合我们的认识】
		Date  date1=new Date();
		System.out.println("date1="+date1);
		//Wed Dec 23 14:05:44 GMT+08:00 2020
		//Date(long date) 创建一个 Date对象,保存的是从标准基准时间即1970年1月1日00:00:00 GMT到当下所经过的毫秒数的当下时间。
		//参数date - 1970年1月1日00:00:00 GMT以来的毫秒数。
		Date  date2=new Date(1000);
		System.out.println("date2="+date2);
		//Thu Jan 01 08:00:01 GMT+08:00 1970
		Date  date3=new Date(10000);
		System.out.println("date3="+date3);
		//Thu Jan 01 08:00:10 GMT+08:00 1970
		//如何利用Date(long date)构造方法得到当前系统时间?
		//得到从1970年1月1日00:00:00 到当前系统时间所经过的毫秒数
		//System.currentTimeMillis()---long[毫秒数]
		long haomiao=System.currentTimeMillis();
		Date  date4=new Date(haomiao);
		System.out.println("date4="+date4);
	}
}

实例方法

1.boolean after(Date when)测试此日期是否在指定日期之后。  

2.boolean before(Date when) 测试此日期是否在指定日期之前。 

3.boolean equals(Object obj) 比较两个日期来平等。【Date重写过】

4.long getTime() 返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒 数 。

5.void setTime(long time) 设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点。   

6.String toString() 将此 Date对象转换为 String的形式

package com.wangxing.test1;
import java.util.Date;
public class TestDate {
	public static void main(String[] args) {
		//Date() 创建一个 Date对象,保存了当前系统时间。【格式不符合我们的认识】
		Date  date1=new Date();
		System.out.println(date1);
		//Date(long date) 创建一个 Date对象,保存的是从标准基准时间即1970年1月1日00:00:00 GMT到当下所经过的毫秒数的当下时间。
		//参数date - 1970年1月1日00:00:00 GMT以来的毫秒数。 
		Date  date2=new Date(8000);
		System.out.println(date2);
		//通过Date(long date)得到当前系统时间?
		//1.得到1970年1月1日00:00:00 GMT以来的毫秒数
		long  haomiao=System.currentTimeMillis();
		 System.out.println(haomiao);
		Date date3=new Date(haomiao);
		System.out.println(date3);
		/*
		boolean after(Date when)测试此日期是否在指定日期之后。  
		boolean before(Date when) 测试此日期是否在指定日期之前。  
		*/
		boolean flag1=date1.after(date2);
		System.out.println(flag1);
		boolean flag2=date1.before(date2);
		System.out.println(flag2);
		//long getTime() 返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒 数 。 
        long hm=date1.getTime();
        System.out.println(hm);
        //void setTime(long time) 设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点。  
        date1.setTime(8000);
        System.out.println(date1);
        //String toString() 将此 Date对象转换为 String的形式
        String strdate=date1.toString();
        System.out.println(strdate);
	}
}

三、SimpleDateFormat类如何创建对象,有哪些常用方法?

java.text.SimpleDateFormat ---格式化和解析日期

SimpleDateFormat() 使用默认的时间日期格式

SimpleDateFormat(String pattern) 使用给定的时间日期格式

参数--String pattern【描述日期和时间格式的模式】

时间格式的模式:

y---年【yyyy/1998,yy/98】

M--月【MM/08】

d---日【dd/23】

H---时【HH/12】

m--分【mm/23】

s---秒 【ss/56】

S--毫秒【sss/768】

E--星期【E/星期三】

“yyyy年MM月dd日 HH:mm:ss E” 

“yyyy/MM/dd HH:mm:ss E”

“yyyy-MM-dd HH:mm:ss E”

“yyyy/MM/dd E HH:mm”

 

String

format(Date date) 格式化一个时间日期来生成一个字符串。

Date

parse(String source) 从给定字符串的开始解析文本以生成日期。

例如:

package com.wangxing.test1;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleDateFormatDemo1 {
	public static void main(String[] args)throws Exception{
		/*将时间转换成指定格式的字符串形式
		//得到当前系统时间
		Date  date1=new Date();
		System.out.println(date1);
		//创建一个固定的格式
		String  geshi="yyyy/MM/dd E HH:mm";
		//创建一个时间日期格式化对象
		SimpleDateFormat  sdf=new SimpleDateFormat(geshi);
		//开始格式化时间日期
		String stringdate=sdf.format(date1);
		System.out.println(stringdate);
		*/
		
		//指定格式的字符串形式的时间日期转换成java.util.Date对象
		String strytime="2020/08/20 星期四 15:33";
		//创建一个固定的格式
		String  geshi="yyyy/MM/dd E HH:mm";
		//创建一个时间日期格式化对象
		SimpleDateFormat  sdf=new SimpleDateFormat(geshi);
		//解析时间日期字符串成Date
		Date  date2=sdf.parse(strytime);
		System.out.println(date2);
	}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值