JavaSE(十一)-常用类
  eZw8kcl3fQWu 2023年11月19日 14 0



文章目录

  • 1.Date类概述
  • 1.1.Date类常用方法
  • 1.2.获取当前系统时间
  • 2.DateFormat类
  • 2.1.DateFormat类概述
  • 2.2.日期格式
  • 2.3.DateFormat类常用方法
  • 3.Calendar类
  • 3.1.Calendar类概念
  • 3.2.Calendar类常用方法
  • 3.3.注意事项
  • 4.Math类
  • 4.1.概念
  • 4.2.常用方法
  • 4.3.随机数案例1
  • 4.3.随机数案例2
  • 4.4.随机数Random类
  • 5.System类
  • 5.1.概念
  • 5.2.常用方法


1.Date类概述

  • java中是Date类来表示时间,Java中Date类使用比较频繁,在java.Util包下
  • 类 Date 表示特定的瞬间,精确到毫秒。
  • JavaSE(十一)-常用类_java

  • 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期对象。

JavaSE(十一)-常用类_JavaSE_02

//创建日期对象,把当前的毫秒值转成日期对象
Date date = new Date(1607616000000L);
System.out.println(date);
//打印结果:Fri Dec 11 00:00:00 CST 2020

可是将毫秒值转成日期后,输出的格式不利于我们阅读,继续查阅API,Date中有getYeargetMouth等方法,可以他们已经过时,继续往下查阅,看到了toString方法。

JavaSE(十一)-常用类_Java核心技术_03


点开toString()方法查阅,原来上面打印的date对象就是默认调用了这个toString方法.

1.1.Date类常用方法

JavaSE(十一)-常用类_JavaSE_04

  • 把日期对象转换成对应的时间毫秒值
  • 毫秒值是不断变化的,所以每次打印的不一样,金钱买不了时间

1.2.获取当前系统时间

JavaSE(十一)-常用类_java_05

2.DateFormat类

2.1.DateFormat类概述

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
我们通过这个类可以帮我们完成日期和文本之间的转换。
继续阅读API,DateFormat 可帮助进行格式化并解析任何语言环境的日期。

2.2.日期格式

要格式化一个当前语言环境下的日期也就是日期 -> 文本),要通过下面的方法来完成。DateFormat是抽象类,我们需要使用其子类SimpleDateFormat来创建对象。

  • 构造方法
  • DateFormat类方法

    代码演示:
//创建日期格式化对象,在获取格式化对象时可以指定风格
DateFormat df= new SimpleDateFormat("yyyy-MM-dd");//对日期进行格式化
Date date = new Date(1607616000000L);
String str_time = df.format(date);
System.out.println(str_time);//2020年12月11日
  • DateFormat类的作用:即可以将一个Date对象转换为一个符合指定格式的字符串,也可以将一个符合指定格式的字符串转为一个Date对象。

指定格式的具体规则我们可参照SimpleDateFormat类的说明,这里做简单介绍,规则是在一个字符串中,会将以下字母替换成对应时间组成部分,剩余内容原样输出:

当出现y时,会将y替换成年
当出现M时,会将M替换成月
当出现d时,会将d替换成日
当出现H时,会将H替换成时
当出现m时,会将m替换成分
当出现s时,会将s替换成秒

JavaSE(十一)-常用类_JavaSE_06

public class Demo5 {

	public static void main(String[] args) {

		Date d = new Date(); // 创建一个当前的时间类
		SimpleDateFormat sdf = new SimpleDateFormat("DD");
		String s = sdf.format(d); // 今天是2018年第
		System.out.println("今天是2018年第"+s+"天!"); // 今天是2018年第36天!

	}
}

2.3.DateFormat类常用方法

JavaSE(十一)-常用类_Java编程_07

  • format方法,用来将Date对象转换成String
  • parse方法,用来将String转换成Date(转换时,该String要符合指定格式,否则不能转换)。

练习一:把Date对象转换成String

Date date = new Date(1607616000000L);//Fri Dec 11 00:00:00 CST 2020
DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
String str = df.format(date);
//str中的内容为2020年12月11日

练习二:把String转换成Date对象

String str = ”2020年12月11日”;
DateFormat df = new SimpleDateFormat(“yyyy年MM月dd日”);
Date date = df.parse( str );
//Date对象中的内容为Fri Dec 11 00:00:00 CST 2020

3.Calendar类

3.1.Calendar类概念

  • Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取
  • Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
  • Calendar类静态方法

JavaSE(十一)-常用类_java_08

Calendar c = Calendar.getInstance();  //返回当前日历对象

3.2.Calendar类常用方法

JavaSE(十一)-常用类_java_09

public static Calendar getInstance() //获取日期对象
public int get(int field)	//获取时间字段值,字段参见帮助文档
YEAR 年
MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。
DATE 天
HOUR 时
MINUTE分
SECOND秒

代码演示:

Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
//做一个小练习 打印当前时间:xxxx年xx月xx日(注意月份的时间???)
  • public final void set(int field,int value)//设置指定字段的值

代码演示:

Calendar c = Calendar.getInstance();
	//设置时间为2020年5月20日
	c.set(Calendar.YEAR, 2023);
	c.set(Calendar.MONTH, 4);
	c.set(Calendar.DATE, 20);
  • public final Date getTime() //获取该日历对象转成的日期对象

代码演示:

Calendar c = Calendar.getInstance();
Date d = c.getTime();

3.3.注意事项

  • 西方星期的开始为周日,中国为周一。
  • 在Calendar类中,月份的表示是以0-11代表1-12月。
  • 日期是有大小关系的,时间靠后,时间越大。

4.Math类

4.1.概念

  • 在Java中有一个数学相关的类,叫做Math类,位于java.lang包下。
  • Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
  • 类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。
  • Math类下面有很多数学相关的方法,使用的时候需要查API帮助手册!!

4.2.常用方法

JavaSE(十一)-常用类_Java编程_10

  • abs方法,结果都为正数
double d1 = Math.abs(-5); // d1的值为5
double d2 = Math.abs(5); // d2的值为5
  • ceil方法,结果为比参数值大的最小整数的double值
double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(-3.3); //d2的值为 -3.0
double d3 = Math.ceil(5.1); // d3的值为 6.0
  • floor方法,结果为比参数值小的最大整数的double值
double d1 = Math.floor(3.3); //d1的值为3.0
double d2 = Math.floor(-3.3); //d2的值为-4.0
double d3 = Math.floor(5.1); //d3的值为 5.0
  • max方法,返回两个参数值中较大的值
double d1 = Math.max(3.3, 5.5); //d1的值为5.5
double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3
  • min方法,返回两个参数值中较小的值
double d1 = Math.min(3.3, 5.5); //d1的值为3.3
double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5
  • pow方法,返回第一个参数的第二个参数次幂的值
double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
double d2 = Math.pow(3.0, 3.0); //d2的值为27.0
  • round方法,返回参数值四舍五入的结果
double d1 = Math.round(5.5); //d1的值为6.0
double d2 = Math.round(5.4); //d2的值为5.0
  • random方法,产生一个大于等于0.0且小于1.0的double小数
double d1 = Math.random();

JavaSE(十一)-常用类_JavaSE_11

生成一个大于等于0小于1的随机数!!!

JavaSE(十一)-常用类_Java编程_12

4.3.随机数案例1

  • 生成一个四位的随机验证码 (由0-9数字,A-Z,小写a-z组成)
/*
 * 生成一个四位的随机验证码 (由0-9数字,A-Z,小写a-z组成)
 */
public class Demo3 {

	public static void main(String[] args) {
		String s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char[] chars = s.toCharArray(); // 转化为char类型的数组
		int len = chars.length; // 数组长度: 62
		String numbers = "";
		for (int i = 1; i <= 4; i++) {
			int index = (int) (Math.random() * 62); // [0-61] 数组下标
			char c = chars[index]; // 随机码
			numbers = numbers + c; // 拼接字符串
		}
		System.out.println("验证码是:" + numbers);
	}
}

4.3.随机数案例2

  • 生成一个四位不重复随机验证码 (由0-9数字,A-Z,小写a-z组成)
public class Demo4 {

	static char[] numbers=new char[4];  //全局的数组  用来存放四个不同验证码
	
	public static void main(String[] args) {
		String s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		char[] chars = s.toCharArray();  //转化为char数组
		
		int count=0; //作为下标
		
		while(true){
			int index = (int) (Math.random() * 62); // [0-61] 数组下标
			char c = chars[index]; //一个验证码
			boolean flag = isExsist(c);  //调用方法验证是否村子
			if(flag==false){
				numbers[count]=c; 
				count++;
			}
			if(count==4){  //如果长度是4 结束循环
				break;
			}
		}
		System.out.println("验证码是:"+Arrays.toString(numbers));
	}
	
	//判断一个数组中是否包含某个验证码
	public static boolean isExsist(char c){
		boolean flag=false;
		for (int i = 0; i < numbers.length; i++) {
			if(numbers[i]==c){
				flag=true;
				break;
			}
		}
		return flag;
	}
}

4.4.随机数Random类

  • Java中除了Math下面的随机数方法外,javaAPI专门中还提供了一个生成随机数的类
  • java.util.Random类

5.System类

5.1.概念

在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。

查看文档System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。System类中的都是static方法,类名访问即可。在JDK中,有许多这样的类。

5.2.常用方法

JavaSE(十一)-常用类_Java知识_13

  • currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
  • exit(int status) 用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
  • gc() 用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。
  • getProperty(String key) 用来获取指定键(字符串名称)中所记录的系统属性信息



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月19日 0

暂无评论

推荐阅读
eZw8kcl3fQWu