JAVA基础初探(九)Date类、SimpleDateFormat类、Calendar类、Math类(概述及常用方法)

该篇博客目录

1、Date类
2、SimpleDateFormat类
3、Calendar类
4、Math类

这次介绍这几个常用到的类,当然我在博客中提到的只是部分常用方法,还有部分方法如果需要可以去看官方的api


一、Date类

1、功能

获取当前时间,精确到毫秒

2、构造方法
  • public Date()
    • 根据当前的默认毫秒值创建日期对象
  • public Date(long date)

    • 根据给定的毫秒值创建日期对象(1970年开始)

      package hhh;
      
      import java.util.Date;
      
      public class my_hello_world {
      
          public static void main(String[] args) {
              // TODO Auto-generated method stub
              Date obj=new Date();
              System.out.println("当前时间"+obj);
      
              long time=3600000;//毫秒为单位,这里相当于1小时
              Date obj2=new Date(time);
              System.out.println("所得时间"+obj2);
          }
      }
      
      //输出:
      //当前时间Sat Jan 27 19:03:58 CST 2018
      //所得时间Thu Jan 01 09:00:00 CST 1970
      
3、Date类的成员方法
  • public long getTime()
    • 获取时间,以毫秒为单位(Date转换为毫秒值)
  • public void setTime(long time)

    • 设置时间(把一个毫秒值转换成Date)

      package ddd;
      
      import java.util.Date;
      
      public class Date_test {
      
          public static void main(String[] args) {
              // TODO Auto-generated method stub
              Date d=new Date();
              long m;
              m=d.getTime();//Date转换为毫秒值
              System.out.println(m);
      
              d.setTime(10000);//毫秒值转换为Date
              System.out.println(d);
          }
      
      }
      //输出:
      //1517212122616
      //Thu Jan 01 08:00:10 CST 1970
      

通过对Date的了解可以看出,Date输出的时间格式不是很友好,所以如果需要按自己指定的格式进行显示们就要用到SimpleDateFormat类


二、SimpleDateFormat类

1、概述及作用

SimpleDateFormat类是DateFormat类(抽象类)的子类
作用:对日期时间进行格式化(如:可以将日期转换为指定格式的文本,也可以将文本转换为日期)

2、SimpleDateFormat类构造方法(这里举常用的哈)
  • public SimpleDateFormat()
    • 用默认的模式和默认语言环境的日期格式符号构造
  • public SimpleDateFormat(String pattern)
    • 用给定的模式和默认语言环境的日期格式符号构造
3、给定模式的参数字符串书写

这里写图片描述

这里写图片描述

例:”yyyy年MM月dd日 HH:mm:ss”==>2018年01月29日 18:04:20

4、SimpleDateFormat成员方法
  • public final String format(Date date)
    • Date-String(格式化)(将日期转换为指定文本格式)
  • public Date parse(String source)
    • String-Date(解析)(将文本转换为日期)
a、format方法
package ddd;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Date_test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建Date对象表示当前时间
        Date d=new Date();
        //创建SimpleDateFormat对象,指定目标格式
        SimpleDateFormat ff=new SimpleDateFormat("YYYY年MM月dd日  HH:mm:ss");
        //调用format()方法,格式化时间,转换为指定格式的字符串
        String today=ff.format(d);
        System.out.println(today);
    }

}

这里写图片描述

b、parse方法
package ddd;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date_test {

    public static void main(String[] args) throws ParseException {
        // TODO Auto-generated method stub
        String today="2018年01月29日  17:16:36";
        SimpleDateFormat ff=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");//这里的格式需要与上面的字符

串格式相同
        Date date=ff.parse(today);
        System.out.println(date);
    }

}

这里写图片描述

5、关于format和parse的一个Demo
package ddd;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Date_test {

    public static void main(String[] args) throws ParseException {
        // TODO Auto-generated method stub

        //使用format方法
        SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat sdf2=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        SimpleDateFormat sdf3=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Date d=new Date();

        System.out.println(sdf1.format(d));
        System.out.println(sdf2.format(d));
        System.out.println(sdf3.format(d));

        //使用parse方法
        String t="2018-01-29 18:21:20";
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        Date f=sdf.parse(t);
        System.out.println(f);
    }

}

这里写图片描述

6、Tip
  • 调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要异常处理
  • 使用Date类要导入java.util包,使用SimpleDateFormat要导入java.text包

三、Calendar类

1、概述

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR(例如Calendar.MONTH都是Calendar类中定义的静态常量)等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期是日期提供了一些方法,瞬间可用毫秒值表示)

2、创建Calendar对象

该类通过调用getInstance()静态方法获取一个Calendar对象,此对象已由当前日期时间初始化,即默认代表当前时间

Calendar c=Calendar.getInstance();
3、成员方法
  • public static Calendar getInstance()

    • 创建Calendar对象
  • public int get(int field)

    • 返回给定日历字段的值。日历类中的每个日历字段都是静态成员变量,且都是int类型
  • public void add(int field int amount)

    • 根据给定的日历字段和对应的时间,来对当前日历进行操作
  • public final void set(int year,int month,int date)

    • 设置当前日历的年月日
  • public final Date getTime()

    • 用来获取Date对象,完成Calendar和Date的转换
  • public long getTimeInMillis()

    • 返回此Calendar的时间值,以毫秒为单位(和Date类的getTime方法类似)
4、常用成员方法实例Demo
package ddd;
import java.util.Calendar;
import java.util.Date;

public class Date_test {

    public static void main(String[] args){
        // TODO Auto-generated method stub

        //get方法
        Calendar d=Calendar.getInstance();
        int year=d.get(Calendar.YEAR);
        int month=d.get(Calendar.MONTH);
        int day=d.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+"-"+(month+1)+"-"+day);


        //add方法
        Calendar f=Calendar.getInstance();
        f.add(Calendar.YEAR, -1);
        int year1=f.get(Calendar.YEAR);
        System.out.println(year1);

        f.add(Calendar.YEAR, 2);
        int year2=f.get(Calendar.YEAR);
        System.out.println(year2);


        //set方法
        Calendar c=Calendar.getInstance();
        c.set(2019,2,2);
        int year3=c.get(Calendar.YEAR);
        int month1=c.get(Calendar.MONTH);
        int day1=c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year3+"-"+(month1+1)+"-"+day1);

        //getTime方法
        Calendar k=Calendar.getInstance();
        Date date=k.getTime();//将Calendar对象转换为Date对象
        System.out.println("当前时间:"+date);

        //getTimeInMillis方法
        Long time=k.getTimeInMillis();//获取当前毫秒值
        System.out.println(time);
    }
}

这里写图片描述


四、Math类

1、概述

Math类包含用于执行基本数学运算的方法(注:Math类所有的方法都是静态方法,所以使用该类的方法,可以直接使用下面的方式)

  类名.方法名()==>Math.round();
2、Math类的常用方法

这里写图片描述

3、常用方法实例Demo
package hhh;

import java.util.Arrays;

public class my_hello_world {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double a=12.81;
        //强制类型转换
        int psas=(int)a;
        System.out.println("强制类型转换"+psas);
        //调用round方法,四舍五入
        long popo=Math.round(a);
        System.out.println("四舍五入"+popo);
        //调用floor方法,返回小于参数的最大整数
        double pqpq=Math.floor(a);
        System.out.println("floor"+pqpq);
        //调用ceil方法,返回大于参数的最小整数
        double pppp=Math.ceil(a);
        System.out.println("ceil"+pppp);
        //调用random方法,返回[0,1)之间的随机数浮点数
        double plpl=Math.random();
        System.out.println("随机数"+plpl);
        //产生[0,99)之间的随机整数
        int pdpd=(int)(Math.random()*99);
        System.out.println("产生[0,99)之间随机数"+pdpd);
    }
}

这里写图片描述

4、练习:定义一个包含10个元素的整形数组,通过随机产生10以内的随机数,给数组中的每个元素赋值,并输出结果
    int nums[]= new int[10];
    for(int i=0;i<nums.length;i++)
    {
        int x=(int)(Math.random()*10);
        nums[i]=x;
    }
    //使用foreach循环输出数组中的元素
    for(int element: nums)
    {
        System.out.print(element+" ");
    }

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值