Java学习第14天—一些常用类03

System类

垃圾回收方法   public static void gc();

获取系统时间   public static long currentTimeMillis();

数组拷贝          public static void arraycopy(Object src, int srcPos,Object dest, int destPos,int length)

package com.nim.day14;


class A{
	@Override //帮助检查是否是父类中的方法
	protected void finalize() throws Throwable {
		System.out.println("hello");
		super.finalize();
	}
}
public class SystemDemo {

	public static void main(String[] args) {
		/*
		//system类的方法
		long time1 = System.currentTimeMillis();
		//System.out.println(time);
		for(int i = 0;i<100000;i++){
			System.out.println();
		}
		long time2 = System.currentTimeMillis();
		System.out.println(time2 - time1);
		*/
//		new A();
//		System.gc();
		//System.arraycopy();复制数组
		int[] res = {1,2,3,4,5};
		print(res);
		int[] dest = new int[5];
		print(dest);
		System.out.println("--------");
		//使用System.arraycopy()复制数组的方法
		System.arraycopy(res, 0, dest, 1, 3);
		print(dest);
		//copy(res);
		System.out.println("----------");
		print(copy(res));
		
	}
	//之前复制一个数组的方法
	public static int[] copy(int[] arr){
		int[] src =new int[arr.length];
	    for (int i = 0; i < arr.length; i++) {
			src[i] = arr[i];
		}
		return src;
	}
	
	public static void print(int[] arr){
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		} 
		System.out.println();
	}
	

}

日期类

Date类:用于表示日期的类,可以表示特定的瞬间,精确到毫秒

构造方法:Date()使用当前系统时间构造一个Date对象,底层调用的是第二个带参的构造方法

Date(long date)使用指定的毫秒值,在GMT基准时间的基础上加上指定时间构造一个Date对象

成员方法:

long getTime():获取日期所代表的毫秒值与世界时的差

void setTime(long time):用毫秒值设置时间

 

package com.nim.day14;

import java.util.Date;

public class DateDemo {

	public static void main(String[] args) {
		/*
		// Date();取出系统当前时间
		Date d = new Date();
		System.out.println(d);
		
		long time = System.currentTimeMillis();
		  Date d1 = new Date(time);
		  System.out.println(d1);
		  System.out.println(d1.getTime()==time);
		  */
	      long time = System.currentTimeMillis();
	      Date d = new Date();
	      d.setTime(time);
	      System.out.println(d);
	}

}

SimpleDateFormat

1、格式化日期 2、解析:此时需要解析的文本必须用格式化时的模式才能解析

package com.nim.day14;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class SimpleDateDemo {

	public static void main(String[] args) {
		/*
		String pattern = "yyyy年MM月dd日 HH:mm:ss";
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		// 创建当前日期对象
		Date d = new Date();
		//date对象到字符串 格式化日期过程
		String format = sdf.format(d);
		System.out.println(format);
		*/
		//解析字符串成日期对象
		 String strDate = "2018年09月13日 11:06:17";
 		 String pattern = "yyyy年MM月dd日 HH:mm:ss";
 		 SimpleDateFormat sdf = new SimpleDateFormat(pattern);
 		 try {
			Date d = sdf.parse(strDate);
	        System.out.println(d);

		} catch (ParseException e) {
			System.out.println("解析日期异常");
			e.printStackTrace();
		}
	}

}

日期工具类的封装

对于频繁使用的日期转换功能,考虑封装到工具类中,方便使用 既然是工具类,一般都是静态方法,直接使用类名调用,将构造方法私有

扫描二维码关注公众号,回复: 3709775 查看本文章
package com.nim.day14;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
 * 定义date工具类
 */
public class DateTool {
	//构造方法私有化
	private DateTool() {}
	//格式化日期对象
	public static String dateToString(Date d,String pattern){
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		return sdf.format(d);
	}
	//调用工具类解析字符串为日期对象
	public static Date stringToDate(String d,String pattern) throws ParseException{
		SimpleDateFormat sdf = new SimpleDateFormat(pattern);
		Date date = sdf.parse(d);
		return date;
	}
}
package com.nim.day14;

import java.text.ParseException;
import java.util.Date;

public class DateToolDemo {

	public static void main(String[] args) {
		
		 //格式化日期
		String pattern = "yyyy-MM-dd";
		Date d = new Date();
		String res = DateTool.dateToString(d, pattern);
		System.out.println(res);
	    
		//解析
			
		try {
			Date date = DateTool.stringToDate(res, pattern);
			System.out.println(date);
		} catch (ParseException e) {
			System.out.println("解析日期异常");
			e.printStackTrace();
		}
	}

}

工具类的使用

package com.nim.day14;

import java.text.ParseException;
import java.util.Date;
import java.util.Scanner;

/*
 * 算一下你来到这个世界多少天?

	思路:
	1.我们知道的是生日,是字符串的形式
	2.用工具类将这个字符串转换成一个日期对象:Date d (1980,01,01)
	3.得到生日对象的毫秒值
	4.得到现在系统的毫秒值
	5.得到二者的毫秒差
	6.使用毫秒差换算得到天数
 */
public class DateDemo2 {

	public static void main(String[] args) throws Exception {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入出生日期:(yyyy-MM-dd)");
		String birthday = s.next();
		String pattern = "yyyy-MM-dd";
		//调用工具类将字符串转换成日期对象
		Date date = DateTool.stringToDate(birthday, pattern);
		//得到生日对象的毫秒值
		long time1 = date.getTime();
		Date date2 = new Date();
		//得到现在系统的毫秒值
		long time2 = date2.getTime();
		//得到二者的毫秒差
		long time3 = time2 - time1;
		System.out.println("您已经来到世界上 " + time3 / 1000 / 3600 /24 +"天");
	}

}

 Calendar日历类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法

获取日历对象的方法:   Calendar rightNow = Calendar.getInstance();

获取年   int year = rightNow.get(Calendar.YEAR);

获取月   int month = rightNow.get(Calendar.MONTH);

Calendar 类常用方法

void set(int field,int amount)  根据日历的规则,添加或者减少指定的时间量

int getActualMaximum(int field)   返回指定日历字段可以拥有的最大值

int getActualMinimum(int field)     返回指定日历字段可以拥有的最小值

package com.nim.day14;

import java.util.Calendar;

public class CalendarDemo {

	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
//		 System.out.println(c);
		 int i = c.get(Calendar.YEAR);
//		 System.out.println(i);
//		 System.out.println(c.get(Calendar.MONTH));//month从0开始
//		 System.out.println(c.get(Calendar.DAY_OF_MONTH));
//		 System.out.println(c.get(Calendar.DATE));
//		 System.out.println(c.get(Calendar.AM_PM));
//		 System.out.println(c.get(Calendar.HOUR));
//		 System.out.println(c.get(Calendar.MINUTE));
		 c.set(Calendar.YEAR, 2017);
		 System.out.println(c.get(Calendar.YEAR));
		 c.add(Calendar.YEAR, 1);
		 System.out.println(c.get(Calendar.YEAR));
		 c.set(Calendar.MONTH,1);
		 System.out.println(c.get(Calendar.DATE));
	}

}
package com.nim.day14;

import java.util.Calendar;

/*
 * 练习:
	获取任意一年的二月份有多少天?

 */
public class CalendarDemo2 {

	public static void main(String[] args) {
             Calendar c = Calendar.getInstance();
             
             c.set(Calendar.YEAR, 2018);
             /*
             //第一种方法使用Calendar日历类方法判断
             c.set(Calendar.MONTH,1);
             int max = c.getActualMaximum(Calendar.DAY_OF_MONTH);
             */
             //第二中方法,三月的第一天减一
             c.set(Calendar.MONTH,2);
             c.set(Calendar.DATE,1);
             c.add(Calendar.DATE, -1);
             int max = c.getActualMaximum(Calendar.DATE);
             System.out.println(max);
             
	}

}

 

猜你喜欢

转载自blog.csdn.net/chengming320/article/details/82591133