Java进阶(11)——时间数字格式、方法耗时计算、BigDecimal、随机数

时间类型转换

  • String --> Data
  • Date --> String
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTest {
    public static void main(String[] args) throws ParseException {
        Date nowTime = new Date();//初始化时间

        /*
        * yyyy年、MM月、dd日、HH时、mm分、ss秒、SSS毫秒
        * Date -->  String
        * for format
        */
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");

        String nowTimeStr = sdf.format(nowTime);
        System.out.println(nowTimeStr);


        //String --> Date
        //假设现在有一个日期字符串String,怎么转换成Date类型?
        String time = "2008-08-08 08:08:08 888";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        Date dateTime = sdf2.parse(time);

        System.out.println(dateTime);
    }
}

输出

2022-07-31 15:30:54 206
Fri Aug 08 08:08:08 CST 2008

计算方法耗时

public class CostTime {
    public static void main(String[] args) {
        long nowTimeMillis = System.currentTimeMillis();
        System.out.println(nowTimeMillis);

        //统计一个方法耗时,在调用一个方法前后记录一个毫秒数
        //Returns:
        //the difference, measured in milliseconds,
        //between the current time and midnight, January 1, 1970 UTC.
        long begin = System.currentTimeMillis();
        print();
        long end = System.currentTimeMillis();
        System.out.println("耗费时长" + (end - begin)+ "毫秒");
    }

    public static void print(){
        for (int i = 0;i<1000000000;i++){
            //System.out.println("i= " + i);
        }
    }
}

输出

1659252688508
耗费时长3毫秒

数字格式

import java.text.DecimalFormat;

public class DecimalFormatTest {
    public static void main(String[] args) {

        //DecimalFormat df = new DecimalFormat("数字格式");
        /*
        * 数字格式有哪些?
        * # 代表任意数字
        * . 代表小数点
        * , 代表千分位
        * 0, 代表不够时补0
        * ###,###.##表示:加入千分位,保留2个小数
        */
        
        DecimalFormat df = new DecimalFormat("###,###.##");
        String s = df.format(1234.561111);
        System.out.println(s);
        DecimalFormat df1 = new DecimalFormat("###,###.0000");
        String s1 = df1.format(1234.56);
        System.out.println(s1);
    }
}

输出

1,234.56
1234.5600,

财务常用引用数据类型BigDecimal

BigDecimal属于大数据,精度极高,不属于基本数据类型,属于java对象。财务软件中的BigDecimal,double是不够的。

import java.math.BigDecimal;

public class BigDecimalTest {
    public static void main(String[] args) {
        BigDecimal b1 = new BigDecimal(100);
        BigDecimal b2 = new BigDecimal(200);
        BigDecimal b3 = b1.add(b2);
        System.out.println(b3);

        BigDecimal b4 = b2.divide(b1);
        System.out.println(b4);
    }

输出

300
2

随机数

import java.util.Random;

public class RandomTest {
    public static void main(String[] args) {
        Random random = new Random();
        //随机产生一个int类型取值范围内的数字
        int num1 = random.nextInt();
        System.out.println(num1);

        int num2 = random.nextInt(101);//表示取值上界为100
        System.out.println(num2);
    }
}

输出

1269407060
2

打完收工~!
在这里插入图片描述


版权声明:本文为qq_16488989原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。