Math类_Date类_SimpleDateFormat类

Math类型

Math类型是一个包含执行基本数字运算的方法的类型

  • 特点:

    • 该类是一个工具类,类中全是静态方法
    • 该类在java.lang包,使用时不需要导包
  • 静态字段:【常量】

    • E 自然对数的底数

    • PI 圆周率

Math常用方法

  • abs(参数): 返回参数的绝对值
System.out.println(Math.abs(-500));
//500
  • ceil(double a) : 向上取整
System.out.println(Math.ceil(99.88));
//100.0
  • floor(double a): 向下取整
System.out.println(Math.floor(99.88));
//99.0
  • max(float a, float b) : 求出两个数的最大值
System.out.println(Math.max(8,100));
//100
  • min(a,b): 求出两个数组的最小值
System.out.println(Math.min(100,23));
//23
  • pow(double a, double b) : 求出参数a的b次方
System.out.println(Math.pow(2,3));
//8.0
  • round(float a) : 求出a的四舍五入的结果
System.out.println(Math.round(10.678));
//11
  • random() : 获取一个随机数 0.0—1.0之间 不包括1.0
System.out.println(Math.random());
//0.04729658713386098

Date类型

Date是表示时间的类型,此类可以表示特定的瞬间,精确到毫秒

是Java中提供的表示时间日期数据的类型

定义对象的方法

  • public Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)
		Date dd = new Date();
        System.out.println(dd);
//Mon Feb 28 20:00:42 CST 2022
  • public Date(long date):分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为" 历元(epoch)",即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
  		Date date = new Date(10000);
        System.out.println(date);
//Thu Jan 01 08:00:10 CST 1970

Date常用方法

  • public long getTime():返回自1970 年1月1日 00:00:00 GMT 以来此 Date 对象表示的 毫秒数
		Date d1 = new Date();
        System.out.println(d1.getTime());
//1646049829058
  • public void setTime(long time):设置此Date对象,以表示 1970 年1月1日 00:00:00 GMT 以后 time 毫秒的时间点
		Date d2 = new Date();
        d2.setTime(10000);
        System.out.println(d2);
//Thu Jan 01 08:00:10 CST 1970
  • public boolean after(Date when):测试此日期是否在指定日期之后
  • public boolean before(Date when):测试此日期是否在指定日期之前

秒杀举例:

public static boolean isMiaosha(String str) throws ParseException {
        String Miaostart = "2021年11月11日 00:00:00";
        String Miaoend = "2021年11月11日 00:10:00";
        SimpleDateFormat sim = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date startd = sim.parse(Miaostart);
        Date endd = sim.parse(Miaoend);
            Date date = sim.parse(str);
        if (date.after(startd) && date.before(endd)) {
            return true;
        } else {
            return false;
        }
    }

SimpleDateFormat类型

概述:使用一个与语言环境有关的方式来格式化和解析日期的具体类

  • 特点:
    • java.text包,需要导包使用
    • 可以按照自定义的方式格式化日期
    • 可以按照指定格式解析日期

日期和时间格式由日期和时间模式字符串指定,在日期和时间模式字符串中,从 ’A‘ -’Z’ 以及从 ‘a’-‘z’引号的字母被解释为表示日期或时间字符串的组件的模式字母

  • 常用的模式字母对应关系如下
    • y
    • M
    • d
    • H (24)时 h(12)时
    • m
    • s

构造方法

  • public SimpleDateFormat():用默认的模式和默认语言环境的日期格式创建对象
//按照默认的日期格式创建对象
        Date d = new Date();
        SimpleDateFormat sim = new SimpleDateFormat();
        String s = sim.format(d);
        System.out.println(s);
//22-2-28 下午8:29
  • public SimpleDateFormat(String pattern):指定解析日期的格式创建对象
//指定解析日期格式创建对象
        Date d1 = new Date();
        SimpleDateFormat simp = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
        String s1 = simp.format(d1);
        System.out.println(s1);
//20220228 20:29:10

常用方法

  • public final String format(Date date):将一个 Date 格式化为日期/时间字符串
 Date d1 = new Date();
        SimpleDateFormat simp = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
        String s1 = simp.format(d1);
        System.out.println(s1);
  • public Date parse(String source):从给定字符串解析文本,以生成一个日期

    注意事项:如果指定的格式不匹配,抛出ParseException

String str = "20200405";
        SimpleDateFormat si1 = new SimpleDateFormat("yyyyMMdd");
        try {
            Date date = si1.parse(str);
            System.out.println(date);
        }catch(ParseException pe){
            System.out.println("格式不匹配!");
        }
//Sun Apr 05 00:00:00 CST 2020

案例:

在控制台上输入一个long类型的毫秒值,将录入的毫秒值换算成对应的Date时间对象,将获取的Date对象格式化成“2020年10月1日 20时20分20秒 “这种形式进行展示。

public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入毫秒值:");
        long l = sc.nextLong();
        getShow(l);
    }
public static void getShow(long lo){
        SimpleDateFormat sim = new SimpleDateFormat("yyyy年MM月d日 HH时mm分ss秒" );
        Date date = new Date(lo);
        sim.format(date);
        System.out.println(date);
    }
/*  
请输入毫秒值:
1000000
1970年01月1日 08时16分40秒
*/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

皮卡丘不断更

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

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

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

打赏作者

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

抵扣说明:

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

余额充值