JavaSE_day11:Date类,Calendar类获取日期时间,System类,对象数组,集合

本文介绍Java中Date类的使用方法,包括创建Date对象、日期格式转换等,并通过示例演示了如何计算两个日期间的天数差及如何确定某个月的具体天数。

Date类:

          表示日期格式,精确到毫秒。

Date类常用的方法:

    Date():比较常用,用来获取当前的系统时间,用Date格式来表示。

public Date(long date):分配Date对象并初始化此对此象,以表示自从标准基准时间(成为“历元(epoch)”)

Date------------------>long

   public long getTime()

publci long getTime(long time):现在很少用。

创建Date对象:   Date date=new Date();

long time=date.getTime();  //此时打印出的time值是一个ms值

System.curremtTimeMilis():System类中的方法,单独使用意义不大,就是测试个程序运行的速率

例如:

  long  start=System.currentTimeMilis();

for(int x=0;x<10000;x++){

   System.out.println("大熊猫是国宝......");

}

 long end=System.currentTimeMilis();

time=start-end;     //当然最后的单位是ms

重点是Date(日期格式)--------------------->String(日期文本格式) 的转换

两者之间的转换用到DateFormat这个类:他是一个抽象类,不能实例化。所以要用到他的子类SimpleDateFormat

Date------------------------>String        称为格式化  String format(Date date)

String----------------------->Date          称为解析  public  Date parse(String source)throws parseEception(编译时期异常)

                                                                                    source是一种格式:例如:(yy-MM-dd)

SimpleDateFormat的构造方法:

    SimpleDateFormat(String pattern):当前日期使用哪一种开发模式:开发者规定xxxx年xx月xx天xx时x分x秒

年              y                            yyyy

月              M                          MM

日               d                          dd

          年月日:yyyy-MM-dd

Date------------>String 

先创建Date对象     Date date=new Date();

创建SimpleDateFormat对象

SimpleDateFormat  simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");

String  dateString=simpleDateFormat.format(date);//格式化方法    当然输出的dateString就是yyyy-MM-dd的形式

String------------>Date    解析

先定义一个日期文本格式:

 String dateString2=“1997-07-19”;

创建SimpleDateFormat类对象

  SimpleDateFormat  simpleDateFormat2=new SimpleDateFormat(“yyyy-MM-dd”);//此处需注意:文本日期的格式必须和SimpleDateFormat的格式相同,否则报错。

Date date=simpleDateFormat.parse(dateString2);  解析

然后来算一下出生到现在一共多少天了(以我为例):

public class DateDemo{

public static void main(String[] args){

                      Scanner sc=new Scanner(System.in);   //导包

                System.out.println("请输入出生年月日:yyyy-MM-dd格式");

                 int date=sc.nextInt();

SimpleDateFormat  simple=new SimpleDateFormat("yyyy-MM-dd");     //创建SimpleDateFormat对象

Date date2=simple.parse(date);//解析

long myTime=date2.getTime();//获取出生日期的毫秒值

long nowTime=System.currentTimeMilis();//获取现在时刻的毫秒值

long time=nowTime-myTime;

long day=time/1000/60/60/24;

System.out.println("出生到现在一共:"+day+"天了");

}

}

再来看一个例子:比如说如何查询任意一年的2月多少天?那么现在就引用Calendar来算:

Calendar:

public class CalendarDemo {
    public static void  main(String[] args) {

Scanner sc=new Scanner(System.in);

System.out.println("请输入任一年份:");

int year=sc.nextInt();

//创建Calendar对象

Calendar calendar=Calendar.getInstance();

calendar.set(year,2,1);

calendar.add(calendar.DATE,-1);

System.out.println(calendar.add(calendar.DATE,-1));

    }
}

System类: 

    in:标准输入流

     InputStream:字节输入流

    out:标准输出流

    PrintStream:标准输出流

gc():public static void gc():Java虚拟机努力回收一些未用的对象,开启垃圾回收器实质是Object中的

finalize()方法

public static void exit(int status):这个方法执行,jvm就退出了,参数是0;

public static  void arrayCopy(Object src, int srcPos, Object dest,int destPos,int length):

从指定源数组中的某个位置开始复制,复制目标数组中的某个位置,指定长度。

int[] arr={11,22,33,44,55};

int[] arr2={10;11;12;13;14;15};

System.arrayCopy(arr,2,arr3,2,2);

System.out.println(arr);   //{11,22,33,44,55}

System.out.println(arr2);   //{10,11,12,33,44,15}

注意:在上边的方法中,改变的是arr2 ,arr数组元素是不变的。

对象数组:

         可以存储对象的数组;

在这里举例说明一下可以吧.....gagaga....

需求: 有一个班,班里有5个学生,分别有自己的信息(姓名,年龄,性别...),遍历5个学生的信息!

此处省略学生标准类,如果不会的朋友请看我前边的内容。

public class ObjectArray{

              public static void main(String[] args){

        //创建一个学生数组,存储学生信息

           Student[ ]  student=new Student[5];

//创建5个学生对象

       Student s1=new Student("张三",28);

       Student s2=new Student("李四",28);

        Student s3=new Student("王五",28);

         Student s4=new Student("赵六",28);

         Student s5=new Student("田七",28);

students[0]=s1;

students[1]=s2;

students[2]=s3;

students[3]=s4;

students[4]=s5;

//遍历(迭代)学生信息:

for(int x=0;x<students.length;x++){

    Student student=students[x];

  System.out.println(student.getName()+"---"+student.getAge());

}     

}

}

集合:

  今天也是初识集合,先一起来看看集合吧!

  集合的由来:目前学习的语言是一种面向对象语言,面向对象语言对事物的描述通过对象(属性和行为...)体现的,必须给对象进行操作,并且还要针对多个对象进行操作

Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。

添加功能:

     boolean add(Object e):添加单个元素

      boolean addAll(Collection c):添加一个集合中的元素。

删除功能:

   void clear();暴力清除

   remove(Object o):移除单个元素

  removeAll(Collection c):移除一个集合。

判断功能:

boolean contains(Object o):一个集合中是否包含指定的元素

boolean containsAll(Collection c):一个集合包含另一个集合的元素

boolean isEmpty():判断集合是否为空。

获取功能:

int size():获取元素的方法

Iterator itersator():迭代器(遍历集合的特有的功能)

转换功能:

Object[ ] toArray():将集合转换成数组

交集:

boolean retainAll(Collection c):假设集合A和集合B取交集,取来的交集放在集合A中了,boolean的表达意思是

如果取交集之后,集合A发生改变,则返回true。

Collection的高级功能:

boolean addAll(Collection c):添加一个集合的元素

removeAll(Collection c):删除一个集合中的元素(移除一个算是移除)

boolean containsAll(Collection c):包含一个集合中的元素(包含所有算是包含)

集合的专有遍历(迭代)方法:(迭代器)

Iterator<E>  iterator()

 Iterator中有  

            boolean  hasNext();判断是否至少存在一个元素

           Object next();如果上式判断存在至少一个元素,则遍历下一个元素

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值