java常用类:Math/System/Date/DateFormat/SimpleDateFormat/Calendar

Math类

Math类 是一个工具类,没有构造方法所以不能new对象,它提供的都是静态属性和方法,直接用类名访问.包含基本数学运算的方法,如初等指数、对数、平方根和三角函数。在java.lang包下,所以不用导包.

Math类中静态常量属性:
E: 自然对象底数: 2.718
PI: 圆周率: 3.14

Math类常用静态方法:
abs(int a): 返回参数的绝对值
cbrt(double d): 返回参数的立方根
sqrt(double d): 返回参数正平方根
ceil(double d): 对参数进行向上取整
floor(double d): 对参数向下取整
log10(double d): 求参数以10为底的对数
max(int a, int b): 求两个参数最大值
min(int a, int b): 求两个参数最小值
pow(int a, int b): 求参数a的b次幂的结果
random(): 返回[0.0 1.0)之间随机小数
round(double d): 四舍五入

public class Math{
	public static void main(String[] args) {
		// 属性
		System.out.println(Math.E);
		System.out.println(Math.PI);
		// 方法
		// 1
		int i = Math.abs(-100);
		System.out.println(i);
		// 2
		double d = Math.cbrt(8);
		System.out.println(d);
		// 3
		double e = Math.sqrt(9);
		System.out.println(e);
		// 4
		double f = Math.ceil(4.0001);
		System.out.println(f);
		// 5
		double g = Math.floor(5.9);
		System.out.println(g);
		// 6
		double h = Math.log10(1000);
		System.out.println(h);
		// 7
		int max = Math.max(10, 20);
		System.out.println(max);
		// 8
		int min = Math.min(5, 18);
		System.out.println(min);
		// 9
		double r = Math.pow(2, 4);
		System.out.println(r);
		// 10
		double j = Math.random();
		System.out.println(j);
		// [a, b]随机数:  (int)(Math.random()*(b-a+1))+a;
		int r2 = (int)(Math.random()*(50-30+1))+ 30;
		System.out.println(r2);
		// 11
		long l = Math.round(3.1);
		System.out.println(l);
		long m = Math.round(3.5);
		System.out.println(m);
	}
}

System类

System 类包含一些有用的类字段和方法。它不能被实例化。属于一个系统资源类, 能访问操作系统资源: 键盘, 控制台.
System中方法都必须使用类名访问. 属于java.lang包;

常用静态属性:

err: 标准错误输出流, 使用该流在eclipse打印内容,显示的结果是红色的字体. 所以程序出异常了,报红了, 就是这个流打印的.
in: 标准输入流, 默认关键的是输入设备是键盘.
out: 标准输出流, 默认关联的是控制台.Console

System的常用方法:

exit(int n): 传入实参0, 结束虚拟机
gc(): 手动调用垃圾回收机制
currentTimeMillis(): 获取代码执行到该方法所在行的当前时间, 返回的是一个毫秒值, 1s = 1000ms.
使用该方法去测试一个功能模块的效率
测试的步骤:
1.在功能开始之前取个时间
2.再在功能模块结束之后取个时间
3.两者的差值就是执行效率

long l = System.currentTimeMillis();
		System.out.println(l);
		String s = "";
		for(int i = 1; i < 10000; i++) {
			s = s.concat(i+"");
		}
		long l2 = System.currentTimeMillis();
		System.out.println(l2);
		System.out.println(l2-l);

Date类

  1. Date属于java.util包下, 使用时需要导包.
  2. Date对象是相对于1970.1.1 00:00:00获取的一个毫秒值.生成的一个时间.

Date相关方法

Date();创建当前时间的对象. Date(long millis); 相对1970.1.1 00:00:00换算得到一个时间对象.
after(Date d): 调用者时间对象与参数对象比较, 如果在参数对象之后,返回true,否则返回false before(Date
d): 调用者时间对象与参数对象比较, 如果在参数对象之前,返回true,否则返回false long getTime():
获取当前时间对象的毫秒值,相对于1970.1.1 00:00:00得到的 setTime(long millis):
设置时间对象的毫秒值,相当于修改时间

public class Date的对象方法 {
	public static void main(String[] args) {
		// 当前时间
		Date d1 = new Date();
		// 相当于1970.1.1 0:0:0 过了两天时间对象
		// 2*24*60*60*1000
		Date d2 = new Date(2*24*60*60*1000);
		
		boolean b1 = d1.after(d2);
		System.out.println(b1);
		
		boolean b2 = d2.before(d1);
		System.out.println(b2);
		
		// 3
		long l = d2.getTime();
		System.out.println(l);
		// 4 修改时间
		System.out.println(d1);
		d1.setTime(1000);
		System.out.println(d1);
		
	}
}

DateFormat类

  1. DateFormat在java.text包下,使用时需要导包
  2. DateFormat是一个抽象类,所以不能创建对象,但是他有一个子类:SimpleDateFormat,可以用这个子类创建对象.
  3. 常用方法:

String format(Date d); 把日期对象转为字符串.
Date parse(String str); 把字符串对象转为时间对象.

  1. SimpleDateFormat的方法:

SimpleDateFormat(); 以默认格式创建一个对象. SimpleDateFormat(String
pattern); 以指定格式(pattern)创建一个对象.

使用技巧:
1 创建一个Date对象d(当前时间)
2 创建一个SimpleDateFormat对象sdf并给予想要的格式.
3 sdf.format(d); 就是当前时间想要的格式(字符串形式).
在这里插入图片描述

package com.ujiuye.dateformat;

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

public class SimpleDateFormat{
	public static void main(String[] args) throws ParseException  {
		Date d = new Date();
		System.out.println(d);
		// Thu Nov 07 14:02:43 CST 2019
		
		SimpleDateFormat sdf = new SimpleDateFormat();
		// 时间对象转字符串
		String ds = sdf.format(d);
		System.out.println(ds);
		// 19-11-7 下午2:04 默认的转换格式: 年年-月-日  上下午  小时:分钟
		// 时间字符串转时间对象
		String time = "20-10-1 上午 10:20";
		Date d2 = sdf.parse(time);
		System.out.println(d2);
		
		// 创建一个日期格式化对象
		// 2019年11月7号  14时14分20秒
		// yyyy年MM月dd号  kk时mm分ss秒
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd号  kk时mm分ss秒");
		String s2 = sdf2.format(d);
		System.out.println(s2);
		String time2 = "1970年1月1号  0时0分0秒";
		Date d3 = sdf2.parse(time2);
		System.out.println(d3);
		
		// 把时间转为这样格式的字符串: 2019-11-7 14:20:15
		// yyyy-MM-dd hh:mm:ss
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		String s3 = sdf3.format(d);
		System.out.println(s3);
		
	}
}

Calendar类

日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar类为抽象类,由于语言敏感性,它在创建对象的时候并非直接创建,而是通过静态方法创建 : Calendar c = Calendar.getInstance(); ,返回当前时间但是格式看不懂!

Calendar的get方法

package com.youjiuye.practice;
import java.util.Calendar;
public class Calendar_get {

	public static void main(String[] args) {
		//创建Calendar对象
		Calendar c = Calendar.getInstance();
		//获取当前年
		int year = c.get(Calendar.YEAR);
		System.out.println(year);
		//获取当前月
		int month = c.get(Calendar.MONTH);
		System.out.println(month + 1);
		//获取当前日
		int day = c.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);
		//获取当前时
		int hour = c.get(Calendar.HOUR_OF_DAY);
		System.out.println(hour);
		//获取当前分
		int min = c.get(Calendar.MINUTE);
		System.out.println(min);
		//获取当前秒
		int s = c.get(Calendar.SECOND);
		System.out.println(s);
		//获取当前星期
		int x = c.get(Calendar.DAY_OF_WEEK);
		System.out.println("这是外国的星期数,每周的第一天是星期日:" + x);
		String[] arr = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
		System.out.println(arr[x]);
	}

}

Calendar的set方法

修改日历时间.

public class Calendar的set方法03 {
	public static void main(String[] args) {
		Calendar c = Calendar.getInstance();
		// 1
		c.set(Calendar.YEAR, 2020);		
		c.set(Calendar.MONTH, -1); 
		System.out.println(c); 
		System.out.println(c.get(Calendar.MONTH));
		System.out.println(c.get(Calendar.YEAR));
		// 2
		
		Calendar c2 = Calendar.getInstance();
		c2.set(2020, 8, 11); //三个值只能修改年月日
		System.out.println(c2);
		// 3
		Calendar c3 = Calendar.getInstance();
		c3.set(2000, 0, 1, 12, 12); //五个值只能修改年月日时分
		System.out.println(c3);
		
		// 4
		Calendar c4 = Calendar.getInstance();
		c4.set(1969, 1, 1, 0, 0, 0); //六个值只能修改年月日时分秒
		System.out.println(c4);
		
	}
}

Calendar的add方法

add(int field, int amount):方法功能: 在某个字段值基础上, 进行偏移, 既可以向前偏移(过去),也可以向后偏移(未来).

public class Calendar的add方法 {
	public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		cal.add(Calendar.YEAR, 2);
		cal.add(Calendar.MONTH, -1);
		System.out.println(cal);		
	}
}

毫秒值, Date类型及Calendar的互转

1.毫秒值和Date互转 毫秒转Date: 使用Date的构造方法: Date(long millis) Date转毫秒值: 使用Date的getTime()
2.毫秒值和Calendar的互转 毫秒转Calendar: setTimeInMillis(long time) Calendar转毫秒值: getTimeInMillis()
3.Date和Calendar的互转 Calendar转Date: 调用Calendar的getTime()方法 Date转Calendar: 调用Calendar的setTime(Date d)方法

package com.ujiuye.calendar;

import java.util.Calendar;
import java.util.Date;

public class 毫秒值_Date类型及Calendar的互转05 {
	public static void main(String[] args) {
		// 毫秒值转date
		long m = 1000;
		Date d = new Date(m);
		System.out.println(d);
		// Date转毫秒值
		long l = d.getTime();
		System.out.println(l);
		
		//  毫秒值和Calendar互转
		Calendar cal = Calendar.getInstance();
		cal.setTimeInMillis(2000);
		System.out.println(cal);
		
		long n = cal.getTimeInMillis();
		System.out.println(n);
		// Date和Calendar的互转
		Date d2 = new Date(1000);
		Calendar cal2 = Calendar.getInstance();
		cal2.setTime(d2);
		System.out.println(cal2);
		Date d3 = cal2.getTime();
		System.out.println(d3);
		
		// 时间戳: 就是相对1970.1.1 0:0:0的一个毫秒值

	}
}

练习题

1.输出当前的时间的年,月,日,时,分,秒 星期几
例如: 2019年8月1日 14时54分30秒 星期四
2.键盘录入一个年份, 判断是闰年还是平年,使用日历对象完
3.计算出生多少天

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值