Date和SimpleDateFormat常用API

简介: Date和SimpleDateFormat常用API

Date:

(1)定义

  特定的瞬间,精确到毫秒。

(2)构造方法

  Date():根据当前的默认毫秒值创建日期对象

  Date(long date):根据给定的毫秒值创建日期对象

(3)常用API

  public long getTime()

获取时间,以毫秒为单位

  public void setTime(long time)

设置时间

eg:

public class DateDemo {
  public static void main(String[] args) {
    // 创建对象
    Date d = new Date();

    // 获取时间
    long time = d.getTime();
    System.out.println(time);
    // System.out.println(System.currentTimeMillis());

    System.out.println("d:" + d);
    // 设置时间
    d.setTime(1000);
    System.out.println("d:" + d);
  }
}

SimpleDateFormat

(1)定义

  DateForamt:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

(2)构造方法

  SimpleDateFormat():默认模式

  SimpleDateFormat(String pattern):给定的模式

这个模式字符串该如何写呢?

通过查看API,我们就找到了对应的模式

年 y

月 M

日 d

时 H

分 m

秒 s

(3)Date和SimpleDateFormat类型转换

  Date – String(格式化)

  public final String format(Date date)

**

   String – Date(解析)

  public Date parse(String source)

eg:

public class DateFormatDemo {
  public static void main(String[] args) throws ParseException {
    // Date -- String
    // 创建日期对象
    Date d = new Date();
    // 创建格式化对象
    // SimpleDateFormat sdf = new SimpleDateFormat();
    // 给定模式
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    // public final String format(Date date)
    String s = sdf.format(d);
    System.out.println(s);
    
    
    //String -- Date
    String str = "2008-08-08 12:12:12";
    //在把一个字符串解析为日期的时候,请注意格式必须和给定的字符串格式匹配
    SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date dd = sdf2.parse(str);
    System.out.println(dd);
  }
}

一个例题:算一下从出生到现在活了多少天

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

public class Demo6 {
    public static void main(String[] args) throws ParseException {
        //录入出生年月日
        Scanner sc = new Scanner(System.in);
        System.out.println("输入出生年");
        String year = sc.nextLine();
        System.out.println("输入出生月");
        String month = sc.nextLine();
        System.out.println("输入出生日");
        String date = sc.nextLine();
        //将录入的年月日拼接成 yyyy-MM-dd 模板
        String time = year + "-" + month + "-" + date;
        //创建 yyyy-MM-dd 模板的SimpleDateFormat对象sd
        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
        //将 SimpleDateFormat 自定义的时间戳 转换为Date类型的时间戳
        Date d = sd.parse(time);
        //获取毫秒数
        long start = d.getTime();
        //获取当前时间
        long end = new Date().getTime();
        //计算天数
        long t = (end -start)/1000/60/60/24;
        System.out.println(t);
    }
}

目录
相关文章
|
3月前
|
Java API
JavaSE——常用API进阶二(3/8)-Date、SimpleDateFormat(构造器、常用的方法、用法示例、时间格式的常见符号)
JavaSE——常用API进阶二(3/8)-Date、SimpleDateFormat(构造器、常用的方法、用法示例、时间格式的常见符号)
21 1
|
Java API
Java常用API(三)Date,DateFormat和Calendar
Java常用API(三)Date,DateFormat和Calendar
69 0
|
SQL 存储 分布式计算
【Java新特性学习 四】JDK8: 库函数新特性之Optional,Streams,Date/Time API(JSR 310),Base64,并行数组
【Java新特性学习 四】JDK8: 库函数新特性之Optional,Streams,Date/Time API(JSR 310),Base64,并行数组
68 0
|
存储 算法 搜索推荐
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(一)
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(一)
140 0
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(一)
|
Java API
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(二)
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(二)
116 0
详讲Java开发中的六个常用API(Math,System,Object,Integer,Date)(二)
|
SQL 安全 Java
Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
200 0
Java 8 新特性:Java 类库的新特性之日期时间API (Date/Time API )
|
IDE Java API
还在用new Date计算任务执行时间?强烈建议使用这个API!
还在用new Date计算任务执行时间?强烈建议使用这个API!
152 0
|
安全 Java API
为什么不建议使用Date,而是使用Java8新的时间和日期API?
Java 8:新的时间和日期API 在Java 8之前,所有关于时间和日期的API都存在各种使用方面的缺陷,因此建议使用新的时间和日期API,分别从旧的时间和日期的API的缺点以及解决方法、Java 8 新的时间和日期API进行讲解。
1721 0
|
Java API Android开发
SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)
这个故事是这样的   今天写打卡时间的时候需要获取一下当前时间,然后我就写了一个这个   [java] view plain copy   SimpleDateFormat sDF =   new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");   tring date = sDF.
2080 0