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

本文介绍了Java中时间类型转换的方法,包括String转Date和Date转String。此外,还讲解了计算方法耗时的技巧,展示了如何利用System.currentTimeMillis()测量代码执行时间。在数字格式化方面,通过DecimalFormat展示了如何定制数字格式。最后,讨论了在财务计算中常用的BigDecimal数据类型及其加法和除法操作。文章还简单提及了Java的随机数生成。
摘要由CSDN通过智能技术生成

时间类型转换
  • 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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂java杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值