一文解决Java的日期类,数字格式化类等

获取系统当前时间

包:java.util.Date;

  • 直接调用无参数构造方法
    Date nowtime = new Date();
  • 日期的格式化
    这时SimpleDateFormat类上场了。
    SimpleDateFormat是抽象类DateFormat的子类。
    所在的包是:java.text.SimpleDateFormat;
    yyyy 年
    MM 月
    dd 日
    HH 时
    mm 分
    ss 秒
    SSS 毫秒
    例如:
    Date nowtime = new Date();
    SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS);
    String nowtime = times.format(nowtime);
  • 获取系统当前时间如下:
  package package3;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Nowtime {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date nowtime = new Date();
		SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:sss");
		String nowtimes = time.format(nowtime);
		System.out.println(nowtimes);
	}

}

  • 那如果有个日期字符串怎么装换成Date类型。(还记得Python中的日期反转吗,这里不过是用的不同的方法而已)
    String time = “2020-3-30 10:15:08:06:666”;
    SimpleDateFormat times2 = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss-SSS);
    Date dateTime =times.parse(time);//这里可能会有异常,后期说。
  • 将日期字符串转换成可处理的Date类型。
package package3;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateStringChange {

	public static void main(String[] args) throws ParseException {
		// TODO Auto-generated method stub
		String time ="2020-3-31 13:32:59:010";
		SimpleDateFormat times = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");
		Date dateTime = times.parse(time);
		System.out.println(dateTime);
	}

}

  • 获取时间戳(毫秒为单位,1970.1.1,24时到现在的时间)
    long nowTimes = System.currentTimeMillis();
    要这个有什么作用呢?
  • 统计一个算法或方法的运行时间。
  • 之后的时间戳减去之前的时间戳。
package package3;

public class TimeCuo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long Times1 = System.currentTimeMillis();
		    add();
		long Times2 = System.currentTimeMillis(); 
		System.out.println(Times2-Times1+"ms");
		
	}
	public static void add() {
		for(int i=0;i<100000000;i++)
			i+=1;
	}

}

System类

  • System.out out是System的相关属性和方法。
  • println() 方法不是System类的,是PrintStream类的方法。
  • gc() 建议启动垃圾回收器。
  • currentTimeMillis() 获取时间戳。
  • System.exit(0) 退出JVM.

数字格式化

  • 类DecimalFormat,其父类NumberFormat为抽象类。
  • 包 java.text.DecimalFormat
    表示任意数字 “#”
    代表千分位 " ,"
    代表小数 “.”
    代表不够时补0 “0”
    科学计算法 “0.###E0” 如:1234 “1.234E3”。
package package3;
import java.text.DecimalFormat;
public class Format1 {
	public static void main(String[] args) {
		DecimalFormat aa = new DecimalFormat("0.##E0");
		System.out.println(aa.format(12569.35554));
	}
}

数字类(BigDecimal)

  • BigDecimal 属于大数据,精度极高,不属于基本数据类型,属于java对象(引用数据类型)这是sun提供的类。专门用于财务软件中。
  • 在数学包中,java.math.BigDecimal
    BigDecimal v1 = new BigDecimal (100);
    BigDecimal v2 = new BigDecimal(200);
    BigDecimal v3 = v1.add(v2);
    divide方法:BigDecimal做除法的时候一定要在divide方法中传递第二个参数,定义精确到小数点后几位,否则在不整除的情况下,结果是无限循环小数时,就会抛出以上异常。
    解决方法:.divide(v2, 2, BigDecimal.ROUND_HALF_UP);
        BigDecimal num1 = new BigDecimal(0.005);
        BigDecimal num2 = new BigDecimal(1000000);
        BigDecimal num3 = new BigDecimal(-1000000);
        //尽量用字符串的形式初始化
        BigDecimal num12 = new BigDecimal("0.005");
        BigDecimal num22 = new BigDecimal("1000000");
        BigDecimal num32 = new BigDecimal("-1000000");
 //加法
        BigDecimal result1 = num1.add(num2);
        BigDecimal result12 = num12.add(num22);
 
        //减法
        BigDecimal result2 = num1.subtract(num2);
        BigDecimal result22 = num12.subtract(num22);
 
        //乘法
        BigDecimal result3 = num1.multiply(num2);
        BigDecimal result32 = num12.multiply(num22);
 
        //绝对值
        BigDecimal result4 = num3.abs();
        BigDecimal result42 = num32.abs();
 
        //除法
        BigDecimal result5 = num2.divide(num1,20,BigDecimal.ROUND_HALF_UP);
        BigDecimal result52 = num22.divide(num12,20,BigDecimal.ROUND_HALF_UP);

其他方法查找帮助文档。

随机数类

  • 包 java.util.Random;
  • Random random = new Random();
  • int num = random.nextInt();
  • //产生0到100的数据
    int num2 = random.nextInt(101);
    练习:生成5个不重复的随机数,放到数组中。

枚举类

在这里插入图片描述

  • 可是以后开发中可能遇到返回类型不只两种。
    枚举可以解决这个问题。
  • 可以列举出来的才使用枚举。
    • 枚举也是一种引用数据类型。
      定义:
      enum result{
      Success ,
      Fuailer
      }
      使用:
      result.Success

在这里插入图片描述

发布了50 篇原创文章 · 获赞 8 · 访问量 3062

猜你喜欢

转载自blog.csdn.net/jiahuan_/article/details/105192871