Java---常用类(SimpleDateFormat类、Calendar类、BigInteger类和BigDecemal)

目录

1.SimpleDateFormat类

创建对象 构造方法

2.Calendar类

创建对象:

常用方法

3.BigInteger类和BigDecemal

创建对象

常用方法

四舍五入:


1.SimpleDateFormat类

new Date() 获取到当前系统时间: Mon Apr 25 17:21:28 CST 2022

进行转换: yyyy-MM-dd hh:mm:ss 日期字符串

用户输入Scanner, 输入日期只能是一个字符串 "1993-12-12" 需要把String转换为Date

使用SimpleDateFormat: 进行日期与String之间转换, 位于java.text包下: 父类: 抽象类 DateFormat

创建对象 构造方法

pattern: 日期格式表达式字符串: 比如: yyyy-MM-dd hh:mm:ss

日期每一部分的 标识符:

 常见的日期格式字符串:

常用方法:

1.把日期转换为字符串

String format(Date 日期) 从DateFormat继承的

2.把指定日期格式字符串转换为日期 

Date parse(String s) 抛一个ParseException

代码实例

 public static void main(String[] args) {
        Date now = new Date(); //得到当前系统时间
        System.out.println(now);  //Sat Apr 09 09:50:59 CST 2022
        //把日期转换为指定格式: yyyy-MM-dd   2022-04-09
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //调用format() 方法进行转换
        String dateStr = sdf.format(now);
        System.out.println(dateStr);  //2022-04-09


        Scanner input = new Scanner(System.in);
        System.out.println("请输入您的出生日期(yyyy-MM-dd):");
        String  birthdayStr = input.next();
        //把birthdayStr字符串转换为Date类型
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
        //调用parse()
        try {
            Date birthday = sdf1.parse(birthdayStr);
            System.out.println(birthday);
        } catch (ParseException e) {
            // 字符串的格式与SimpleDateFormat的pattern匹配,抛这个异常
            e.printStackTrace();
        }

    }

2.Calendar类

Calendar 是抽象类,位于java.util包: 子类: GregorianCalendar 设置年,月,日, 时,分秒 

获取Calendar类的实例的方法:

创建对象:

1) 调用子类的构造方法创建Calendar对象

 2) 调用Calendar类的static方法: static Calendar getInstance(); 推荐

代码实例:

import java.util.Calendar;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Test {

        public static void main(String[] args) {
            //两个方法创建对象
             Calendar objCalendar = Calendar.getInstance();
            //Calendar objCalendar = new GregorianCalendar();
            // 显示 Date 和 Time 的各个组成部分
            System.out.println("Date 和 Time 的各个组成部分: ");
            System.out.println("年: " + objCalendar.get(Calendar.YEAR));
            // 一年中的第一个月是JANUARY,它为0
            //定义一个月的初始化变量
            int month = 0;
            //实际显示的月份为 objCalendar.get(Calendar.MONTH )+1
            month = objCalendar.get(Calendar.MONTH )+1;
            System.out.println("月: " + month);
            System.out.println("日: " + objCalendar.get(Calendar.DATE));
            // Calendar的星期常数从星期日Calendar.SUNDAY是1,
            //到星期六Calendar.SATURDAY是7
            System.out.println("星期: " + (objCalendar.get(Calendar.DAY_OF_WEEK)));
            System.out.println("小时: " + objCalendar.get(Calendar.HOUR_OF_DAY));
            System.out.println("分钟: " + objCalendar.get(Calendar.MINUTE));
            System.out.println("秒: " + objCalendar.get(Calendar.SECOND));
        }
    }

常用方法

1.获取指定日期部分的值

int get(int field)   //field 日期部分

2.设置日期  

 3.日期相加

add(int field, int amount)

4.Calendar对象转换Date

Calendar的getTime() //把Calendar对象转换Date

Date的getTime() 获取日期的毫秒值

5.把Date转换为Calendar

setTime(Date date

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

public class Test2 {

	public static void main(String[] args) {
		Calendar calendar = Calendar.getInstance();
     // 从一个 Calendar 对象中获取 Date 对象
     Date date = calendar.getTime();
     //使用给定的 Date 设置此 Calendar 的时间
     calendar.setTime(date);
     calendar.set(Calendar.DAY_OF_MONTH, 8);
     System.out.println("当前时间日设置为8后,时间是:" + calendar.getTime());
     calendar.add(Calendar.HOUR, 2);
     System.out.println("当前时间加2小时后,时间是:" + calendar.getTime());
     calendar.add(Calendar.MONTH, -2);
     System.out.println("当前日期减2个月后,时间是:" + calendar.getTime());
	}
}


3.BigInteger类和BigDecemal

int.long,double 存的位数有限, double还有精度问题: 0.1+0.2 !=0.3

解决上面问题: 提供BigInteger,BigDecimal 存放无限大小的数字, BigDecimal 解决小数精度问题

位于 java.math包

创建对象

BigInteger(String val) 

BigDecimal(String val)     

常用方法

加减乘除:

import java.math.BigDecimal;
import java.math.BigInteger;
public class Test{

	public static void main(String[] args) {
		BigInteger bi1 =  new BigInteger("2343243535353");
		BigInteger bi2 =  new BigInteger("1111111111111");
		System.out.println("加法运算:"+bi1.add(bi2));
		System.out.println("减法运算:"+bi1.subtract(bi2));
		System.out.println("乘法运算:"+bi1.multiply(bi2));
		System.out.println("除法运算:"+bi1.divide(bi2));
		System.out.println("求余运算:"+bi1.remainder(bi2));
		
		//大小数
		double f = 111231.5585;
		BigDecimal bd = new BigDecimal(f);
		System.out.println("加法运算:"+bd.add(bd));
		System.out.println("减法运算:"+bd.subtract(bd));
		System.out.println("乘法运算:"+bd.multiply(bd));
		System.out.println("除法运算:"+bd.divide(bd));
		System.out.println("求余运算:"+bd.remainder(bd));
	}
}
    

四舍五入:

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;

public class Test2 {

	public static void main(String[] args) {
		// 大小数
		double f = 111231.5585;
		BigDecimal bd = new BigDecimal(f);
		// 这里可以做四舍五入,假定小数点后面要保留2位有效数字
		double res = bd.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
		System.out.println("res:" + res);

		// 第二种四舍五入方法
		// 这里的参数,
		// #表示任意位数的数字,也可以改为000,三个0表示至少有三位,不足的,就补0
		// 后面的点表示小数点,
		// 00表示小数点后面保留两位有效数字
		DecimalFormat df = new DecimalFormat("#.00");
		System.out.println("第二种方式:" + df.format(f));

		// 第三种
		System.out.println("第三种:" + String.format("%.3f", f));

		// 第四种
		NumberFormat nf = NumberFormat.getNumberInstance();
		nf.setMaximumFractionDigits(3);

		System.out.println("第四种:" + nf.format(f));
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zxmm

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

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

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

打赏作者

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

抵扣说明:

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

余额充值