九:日期操作类

时间: 2023-08-02 admin 互联网

九:日期操作类

九:日期操作类

1、Date日期处理类

          在Java里面提供了一个java.util.Date类,这个类如果直接实例化就可以获取当前的日期时间。

          范例:观察java.util.Date类(获取当前时间)

代码结果

package cn.demos;

import java.util.Date;

public class JavaAPIDemo {

    public static void main(String[] args) throws Exception {

        Date date = new Date();
        System.out.println(date);
    }

}
 

Sat Oct 10 17:18:52 CST 2020

          从上面程序可以得到当前的系统时间,但是时间格式为国际标准。

          观察Date的构造方法:

 (源码)定义
无参构造方法public Date​() {
     this(System.currentTimeMillis())
}
有参构造方法public Date​(long date){
      fastTime = date;
}

          通过对上面的源码分析,可以得知:Date类中只是对long数据的一种包装。所以Date类中一定会提供有所谓的日期与long数据类型之间转换的方法:

方法定义
将long转化为Date
public Date​(long date)
将Date转为long
public long getTime​()

          范例:观察Date和long直接的转换

代码结果

package cn.demos;

import java.util.Date;

public class JavaAPIDemo {

    public static void main(String[] args) throws Exception {

        Date date = new Date();
        long current = date.getTime();
        current += 864000000;// 10天的秒数

        System.out.println(new Date(current));// long转为Date

    }

}
 

Tue Oct 20 17:34:05 CST 2020

          注意:构造方法中使用long类型是因为long中可以保存毫秒的数据级别,这样方便程序的处理。

 

2、SimpleDateFormat日期处理类

          因为Date可以获取当前的日期时间,但是它的默认情况下的格式并不是我们常用的格式,所以,就需要对显示格式进行格式化处理。

          所以在java.text包中提供有SimpleDateFormat类。

          SimpleDateFormat类的结构关系:

定义描述
SimpleDateFormat类
public class SimpleDateFormat
extends DateFormat
继承于DateFormat
DateFormat 类public abstract class DateFormat extends Format抽象类;继承于Format
Format 类public abstract class Format extends Object implements Serializable, Cloneable抽象类

          进行日期方法如下:

方法定义注意
【DateFormat类提供的 】将日期格式化
public final String format​(Date date)
所有的格式化返回类型都是字符串
【DateFormat类提供的 】将字符串转为日期public Date parse​(String source)  throws ParseException
【SimpleDateFormat提供的】构造方法
public SimpleDateFormat​(String pattern)
日期格式年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)

          日期转换格式:

                    1)以下模式字母定义(从所有其他字符 'A''Z'和从'a'到 'z'保留):

                    2)以下示例显示了如何在美国语言环境中解释日期和时间模式。给定的日期和时间是美国太平洋时区的2001-07-04 12:08:56当地时间:

          范例:格式化日期显示

代码结果

package cn.demos;

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

public class JavaAPIDemo {

    public static void main(String[] args) throws Exception {

        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        String str = sdf.format(date);
        System.out.println(str);
    }

}
 

2020-10-10 18:05:02 463
 

          下面的例子是将字符串转为日期

          范例:将字符串转为日期

代码结果

package cn.demos;

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

public class JavaAPIDemo {

    public static void main(String[] args) throws Exception {

        // 字符串的日期
        String birthday = "2019-11-11 11:11:11 111";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
        // 日期接收
        Date date = sdf.parse(birthday);
        System.out.println(date);
    }

}
 

Mon Nov 11 11:11:11 CST 2019
 

          注意:若是你的字符数字定义超过相应的范围,则会自动进行进位处理,即输入的月份是14,则会在年上增加一年,月份转为2月。

          范例:数字格式化

代码结果

package cn.demos;

import java.text.NumberFormat;

public class JavaAPIDemo {

    public static void main(String[] args) throws Exception {

        double money = 234975446.244;
        String str = NumberFormat.getInstance().format(money);
        System.out.println(str);

    }

}
 

234,975,446.244
 

          通过我们的学习可以发现,String字符串可以向所有类型转换,