Date类、SimpleDateFormat类、calendar类-创新互联

一、Date类 1.1 Date概述

java.util.Date类 表示特定的瞬间,精确到毫秒。

公司主营业务:做网站、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出高台免费做网站回馈大家。

继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,我们重点看以下两个构造函数。

  • Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

  • Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

import java.util.Date;

public class DateTest {
    public static void main(String[] args) {
        //日期在开发中常用来存储生日、下单时间、付款时间、审批时间等
        // 类 Date 表示特定的瞬间,精确到毫秒
        Date date1 = new Date();
        System.out.println(date1);

        Date date2=new Date(1000);//创建一个距离1970年1月1日 08:00:00(东八区) 经过了多少毫秒的一个时间
        System.out.println(date2);
    }
}

运行结果如下: 

tips: 由于中国处于东八区(GMT+08:00)是比世界协调时间/格林尼治时间(GMT)快8小时的时区,当格林尼治标准时间为0:00时,东八区的标准时间为08:00

tips:在使用println方法时,会自动调用Date类中的toString方法。Date类对Object类中的toString方法进行了覆盖重写,所以结果为指定格式的字符串。

1.2 Date 常用方法

Date类中的多数方法已经过时,常用的方法有:

  • getTime()把日期对象转换成对应的时间毫秒值。

  • toString():把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat),zzz是时间标准。
package com.hp.test2;

import java.util.Date;

public class DateTest {
    public static void main(String[] args) {
        //日期在开发中常用来存储生日、下单时间、付款时间、审批时间等
        // 类 Date 表示特定的瞬间,精确到毫秒
        Date date1 = new Date();

        long time = date1.getTime(); //计算当前时间距离1970年1月1日 80:00:00 的 毫秒值-------时间戳
        System.out.println(time);

}

运行结果如下: 

面试题:

java.sql.Date和java.util.Date的区别

  • java.sql.Date 是java.util.Date 的子类
  • java.util.Date 是 JDK 中的日期类,精确到时分、秒、毫秒
  • java.sgl.Date 与数据库 Date 相对应的一个类型,只有日期部分,时分秒都会设置为 0,如2019-10-2300:00:00
  • 要从数据库时间字段取 时、分、秒、毫秒数据,可以使用java.sql.Timestamp
二、 SimpleDateFormat类 2.1 构造方法

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

  • SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。
2.2 格式规则

2.3 常用方法

DateFormat类的常用方法有:

  • format(Date date):将Date对象格式化为字符串。

  • parse(String source):将字符串解析为Date对象。

package com.hp.test2;

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

public class DateFormatTest {
    public static void main(String[] args) throws ParseException {
        //simpleDateFormat 用来实现 日期和 字符串 之间的相互转换
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //创建日期格式化类的对象,指定格式符
        Date date1 = new Date();//获取当前系统时间
        System.out.println(date1);

        //把 日期 转换成指定格式的  字符串
        String format = sdf.format(date1);
        System.out.println(format);


        //把 字符串 转换成指定格式的  日期
        String  time = "2000-12-20 1:05:38";
        Date date2 = sdf.parse(time);
        System.out.println(date2);

    }

}

运行结果如下:

三、Calendar类 3.1 概述
  • java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。

  • 有两种方式可以获取GregorianCalendar对象:

    • 直接创建GregorianCalendar对象;

    • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象

3.2 常用方法
方法名说明
public static Calendar getInstance()获取一个它的子类GregorianCalendar对象。
public int get(int field)

获取某个字段的值。field参数表示获取哪个字段的值, 可以使用Calender中定义的常量来表示:

Calendar.YEAR : 年

Calendar.MONTH :月

Calendar.DAY_OF_MONTH:月中的日期

Calendar.HOUR:小时

Calendar.MINUTE:分钟

Calendar.SECOND:秒

Calendar.DAY_OF_WEEK:星期

public void set(int field,int value)设置某个字段的值
public void add(int field,int amount)为某个字段增加/减少指定的值
package com.hp.test2;

import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class CalendarTest {
    public static void main(String[] args) {
        //Calendar 类是一个抽象类,可以通过Calendar 的 getInstance 方法返回一个 Calendar 对象
        Calendar calendar= Calendar.getInstance();
        Date date1=calendar.getTime();//获取当前系统的时间
        System.out.println(date1);

        long timeInMillis = calendar.getTimeInMillis();
        System.out.println("当前时间的毫秒值:"+timeInMillis);

        TimeZone timeZone = calendar.getTimeZone();
        System.out.println("时区:" + timeZone);

        //get方法可以根据 定的日历字段 获取时间对应的值
        int year=calendar.get(Calendar.YEAR);
        System.out.println("年份:" + year);
        int month=calendar.get(Calendar.MONTH);
        System.out.println("月份:"+(month+1)); //0-11 表示1-12月
        int date=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("日期:"+date);
        int day0fYear=calendar.get(Calendar.DAY_OF_YEAR);
        System.out.println("本年的第:" + day0fYear);

        System.out.println("---------------------------");

        //可以获取  指定日期     月份0-11 表示1-12月
        calendar.set(2000,9,12,16,32,45);
        Date date2 = calendar.getTime();


    }
}

运行结果如下:

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:Date类、SimpleDateFormat类、calendar类-创新互联
当前网址:http://csdahua.cn/article/diegpd.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流