淘先锋技术网

首页 1 2 3 4 5 6 7

Date、Calendar、SimpleDateFormat的使用

Date

Date被Calendar取代了,Date的许多方法已经过时,只有一些老的程序还会使用Date

其中Date的常用方法是toString()与toLocaleString()(已经过时,不过还可以继续使用)

Date date = new Date();
String string = date.toString();//Wed Jun 02 18:54:33 CST 2021
String string1 = date.toLocaleString();//2021-6-2 18:54:33

Calendar

因为Calendar的构造方法是protected,所以不能通过new来创建对象,创建对象需要调用静态方法getInstance(),如果Calendar要使用Date的方法,则需要调用Calendar的getTime()方法将Calendar类型转换为Date类型

Calendar calendar = Calendar.getInstance();
 Date time =calendar.getTime();//将Calendar类型转换为Date类型
 String string2 = time.toLocaleString();//使用Date里面的方法toLocaleString

下面介绍Calendar输出年、月、日、小时、分的方法,其中月份输出结果是当前月份减1,因为外国12个月的标号是0-11

Calendar calendar = Calendar.getInstance();
  int year = instance.get(Calendar.YEAR);//结果是今年年份
  int month = instance.get(Calendar.MONTH);//结果是今年月份-1
  int day = instance.get(Calendar.DAY_OF_MONTH);
  int hour = instance.get(Calendar.HOUR);//12小时制
  int hour1 = instance.get(Calendar.HOUR_OF_DAY);//24小时制
  int minut = instance.get(Calendar.MINUTE);

SimpleDateFormat

SimpleDateFormat是一个格式化和解析日期的具体类

        //创建SimpleDateFormat对象 y年M月d日 h:m:s
        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");//2021-06-02 07:15:23
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");//2021-06-02
        //创建Date对象
        Date date = new Date();
        //格式化date把日期转成字符串
        String format = sdf.format(date);
        System.out.println(format);//2021-06-02 07:15:23
        //解析(把字符串转成日期)
        Date parse = sdf.parse("2050-12-03");//括号内的字符串格式必须与SimpleDateFormat对象格式一样,并且需要抛出异常
        System.out.println(parse);//Sat Dec 03 00:00:00 CST 2050

SimpleDateFormat注意:

SimpleDateFormat对象的格式可以有多种写法

yyyy:xxxx年
MM:xx月
dd:xx天
hh:xx小时
mm:xx分钟
ss:xx秒
 new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
 new SimpleDateFormat("yyyy-MM-dd ")
 new SimpleDateFormat("yyyy/MM/dd ")
 这三个对象调用format方法将Date对象格式化输出格式分别为
 2021-06-02 07:15:23
 2021-06-02
 2021/06/02

注意: 使用SimpleDateFormat对象进行解析时,例如Date parse = sdf.parse(“2050-12-03”);括号里面的字符串格式必须与SimpleDateFormat对象格式一样,并且需要抛出异常