Java 常见的系统类

1、日期

java.util 包提供了 Date 类来封装当前的日期和时间。

1.1 Date的使用:

获取当日时间:

public class date {
	public static void main(String[] args) {
		Date date = new Date();
		System.out.println(date.toString());
	}
}

运行结果:

Fri Jul 30 09:45:03 CST 2021

1.2 Calendar日历类

Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

Calendar类对象信息的设置

设置:set
举例:

public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		cal.set(Calendar.DATE,17);                 //设置日期为17号
		System.out.println(cal.get(Calendar.DATE));//打印日期
	}

运行结果:

17

Add设置:

public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		System.out.println(cal.get(Calendar.DATE) +"||"+ (cal.get(Calendar.MONTH)+1));//
		cal.add(Calendar.DATE, 5);
		System.out.println(cal.get(Calendar.DATE));
	}

1.3 DateFormat类

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并分析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(日期 -> 文本)、分析(文本-> 日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年1 月 1 日 00:00:00 这一刻开始的毫秒数。

在创建 DateFormat 对象时不能使用 new 关键字,而应该使用 DateFormat 类中的静态方法 getDateInstance(),示例代码如下:

public static void main(String[] args) {
		Date date = new Date();
		DateFormat d = DateFormat.getDateInstance();//格式化,精确到日
		DateFormat t = DateFormat.getDateTimeInstance();//格式化,精确到时分秒
		System.out.println(d.format(date));
		System.out.println(t.format(date));
	}

运行结果:

2021-7-30
2021-7-30 18:52:51

1.4 SimpleDateFormat

SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类,它允许进行格式化(日期→文本)、解析(文本→日期)和规范化。SimpleDateFormat 使得可以选择任何用户定义的日期/时间格式的模式。
举例:

public static void main(String[] args) {
		Date date = new Date();
		SimpleDateFormat sdf =new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" );
		System.out.println(sdf.format(date));
	}

运行结果:

2021/07/30 19:00:30

1.5 JDK8 新的时间API

LocalDate获取当前时间:

public static void main(String[] args) {
		LocalDate date = LocalDate.now();
		System.out.println(date);//获取当前时间
		System.out.println(date.getYear());//获取当前的年份(同获取月和日方法一样)
	}
2021-07-30
2021

LocalTime获取当前时间:

public static void main(String[] args) {
		LocalTime date = LocalTime.now();
		System.out.println(date);
		System.out.println(date.getSecond());
	}

运行结果:

19:11:10.703
10

LocatDateTime获取当前时间:

public static void main(String[] args) {
		LocalDateTime date = LocalDateTime.now();
		System.out.println(date);
		System.out.println(date.getYear());
		System.out.println(date.getSecond());
	}

运行结果:

2021-07-30T19:12:52.921
2021
52

DateTimeFormatter获取当前时间:

public static void main(String[] args) {
		DateTimeFormatter d = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		System.out.println(LocalDateTime.now().format(d));
		
	}

运行结果:

2021-07-30 19:26:28

Instant获取当前时间:

public static void main(String[] args) {
		Instant date = Instant.now();
		System.out.println(date);
	}

运行结果:

2021-07-30T11:15:27.855Z

2. 常用格式化

2.1 NumberFormat

NumberFormat类是Java提供的一个格式化数字的类,可以将一串数字转化成自己想要的数据格式,也可以将字符串转化成数值。
NumberFormat类包含了两个重要的方法,format()和parse();其中format()方法负责将数字转化成字符串,parse()负责将字符

  1. getInstance()、getNumberInstance()。返回当前默认语言环境的通用数值格式。
  2. getInstance(Locale)、getNumberInstance(Locale)。返回指定语言环境的通用数值格式。
  3. NumberFormat.setMinimumIntegerDigits(int)。设置数的整数部分所允许的最小位数。
  4. NumberFormat.setMaximumIntegerDigits(int)。设置数的整数部分所允许的最大位数。
  5. NumberFormat.setMinimumFractionDigits(int)。设置最少小数点位数,不足的位数以0补位,超出的话按实际位数输出。
  6. NumberFormat.setMaximumFractionDigits(int)。设置最多保留小数位数,不足不补0。

2.2 DecimalFormat

DecimalFormat 是 NumberFormat 的一个具体子类,用于格式化十进制数字。
DecimalFormat 包含一个模式 和一组符号 :

“0”:一个数字
“#” :一个数字,不包括0、小数的分隔符的占位符
“,”:分组分隔符的占位符
“;”: 分隔格式。

“-”: 缺省负数前缀。

“%” :乘以 100 和作为百分比显示

“?” :乘以 1000 和作为千进制货币符显示;用货币符号代替;如果双写,用国际货币符号代替
“X” :前缀或后缀中使用的任何其它字符,用来引用前缀或后缀中的特殊字符。

2.3 BigDecimal

用来对超过16位有效位的数进行精确的运算。

add(BigDecimal) BigDecimal对象中的值相加,然后返回这个对象。
subtract(BigDecimal) BigDecimal对象中的值相减,然后返回这个对象。 multiply(BigDecimal) BigDecimal对象中的值相乘,然后返回这个对象。 divide(BigDecimal)BigDecimal对象中的值相除,然后返回这个对象。

上一篇:Java的日期工具类


下一篇:Java取值过去时间方法sql&JavaDemo