内容学习于:edu.aliyun.com


具体内容:

  从整体的java来讲一直在强调简单java类的主要设计来自于数据表的结构,那么在数据表的结构里面常用的类型:数字、字符串、日期,所以现在的程序之中只差日期了。

1. Date日期处理类

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

代码:

public class JavaAPIDemo {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);
    }
}

结果:

Thu Jan 16 18:28:48 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的转换代码:

public class JavaAPIDemo {
    public static void main(String[] args) {
        Date date = new Date();
        long current = date.getTime();//将date转为long
        current += 864000000;//十天的毫秒
        date = new Date(current);//将long转为date
        System.out.println(date);
    }
}

结果:

Sun Jan 26 18:37:44 CST 2020

  long之中可以保存亳秒的数据级,这样方便程序处理。

2. SimpleDateFormat日期处理类

  虽然Date可以获取当前的日期时间,但是默认情况下Date 类输出的日期时间结构并不能够被国人所习惯那么现在就需要对显示的格式进行格式化的处理,为了可以格式化日期,在java.text包中提供有SimpleDateFormat程序类。该类是DateFormat 的子类,在该类中提供有如下的方法:

  • 【继承DateFormat】:将日期格式化:public final String format(Date date)
  • 【继承DateFormat】将字符串转为日期:public Date parse(String source)throws ParseException
  • 构造方法:SimpleDateFormat(String pattern)
  • <mark>日期格式:年(yyyy)、月(MM)、日(dd)、时(HH)、分(mm)、秒(ss)、毫秒(SSS)</mark>

  如下图所示:

格式化日期转换代码:

public class JavaAPIDemo {
    public static void main(String[] args) {
        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-01-16 18:53:57:582

  除了可以将日期格式化为字符串之后,也可以实现字符串与日期之,间转换处理。

将日期转为date代码:

public class JavaAPIDemo {
    public static void main(String[] args) throws ParseException {
        String birthday = "2000-8-12 11:11:11:111";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置要转换的格式
        Date date = sdf.parse(birthday);//将日期转换
        System.out.println(date);
    }
}

结果:

Sat Aug 12 11:11:11 CST 2000

  如果在进行字符串定义的时候,所使用的日期时间数字超过了指定的合理范围,则会自动进行进位处理。

数字格式化代码:

public class JavaAPIDemo {
    public static void main(String[] args) throws ParseException {
        double money = 6463631.45643;
        String str = NumberFormat.getInstance().format(money);//将数字格式化
        System.out.println(str);
    }
}

结果:

6,463,631.456

  通过到现在的学习发现,<mark>String 字符串可以向所有类型转换,基本类型、日期类型。</mark>