天天看点

九:日期操作类

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字符串可以向所有类型转换,