栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Date、(Calendar和GregorianCalendar)、SimpleDateFormat对时间的调用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Date、(Calendar和GregorianCalendar)、SimpleDateFormat对时间的调用

文章目录
  • Date类
  • Calendar、GregorianCalendar类
  • SimpleDateFormat类

Date类

java.util.Date
使用Date类代表当前系统时间。
但是在date里面的大多方法都是背弃用的。

小知识:
因为这些功能的API不适合国际化。 从JDK 1.1开始, Calendar类应该用于在日期和时间字段之间进行转换,并且DateFormat类应用于格式化和解析日期字符串。 所以在相应的方法Date被弃用。

import java.util.Date;

public class DateDemo01 {
    public static void main(String[] args) {
        Date date = new Date();

        //date ==> date.toString()
        System.out.println("date.toString()方法输出时间字符:" + date);

        //return normalize().getYear() - 1900;所以再加上1900
        System.out.println("date.getYear()方法输出年份:" + date.getYear() + 1900);

        //返回月份(0 ~ 11)
        System.out.println("date.getMonth()方法输出月份:" + date.getMonth() + 1);

        //返回当前的日,就是返回几号
        System.out.println("date.getDate()方法输出几号:" + date.getDate());

        //返回小时,(0 ~ 23)
        System.out.println("date.getHours()方法输出小时:" + date.getHours());

        //返回当前分(0 ~ 59)
        System.out.println("date.getMinutes()方法输出分:" + date.getMinutes());

        //返回秒(0 ~ 59)
        System.out.println("date.getSeconds()方法输出秒:" + date.getSeconds());

        //返回星期几 (从星期日(0)开始到星期六(6)结束)
        System.out.println("date.getDay()方法输出星期:" + date.getDay());

        //返回自1970年1月1日以来到现在毫秒数
        System.out.println("date.getTime()方法输出自1970到现在的时间:" + date.getTime());

        //返回GMT格式的时间格式(d mon yyyy hh:mm:ss GMT)
        System.out.println("date.toGMTString()方法输出GMT格式的时间:" + date.toGMTString());

        //根据操作系统地区控制,返回本地的数字格式
        System.out.println("date.toLocaleString()方法输出本地格式的时间:" + date.toLocaleString());
    }
}

在创建Date的时候,默认不传值的话,会获取当前的最新事件。
当然在创建Date的时候,也可以传入一个自1970年到现在的long型的时间值,然后Date里面的方法就是对传入的这个时间进行解析。

Date d = new Date();
Date d = new Date(long d);

老规矩代码演示一下下:

import java.util.Date;

public class DateDemo02 {
    public static void main(String[] args) throws InterruptedException {

        //创建一个Date,获得当前时间
        Date date1 = new Date();
        System.out.println("输出当前的时间:tttt"+date1.toLocaleString()); //输出当前时间

        Long date = date1.getTime();  //获得当前时间到1970年的时间差

        Thread.sleep(5000);  //这里是让线程5000ms,就是在这让程序暂停5秒

        //创建一个对照组,用于输出现在的时间
        Date date3 = new Date();
        System.out.println("sleep 5秒后当前的时间:tt"+date3.toLocaleString());

        //将上面的获得的时间差在创建的时候,就传入进去,对这个Long进行解析
        Date date2 = new Date(date);
        System.out.println("通过传入参数创建的Date时间为:"+date2.toLocaleString());
    }
}

Calendar、GregorianCalendar类

Calendar是一个抽象类,抽象类是不能创建对象的。

所以在创建对象的时候是借助它的子类来创建的。(GregorianCalendar类)

所以在抽象类当中有提供到一个方法,来获得当前的时间。

创建方式一:

Calendar calendar = new GregorianCalendar();

所以这个类在创建一个对象的时候,是通过它的子类来创建的。
在api当中我们就可以直白的看出它的子类(GregorianCalendar):

所以在创建的时候,就可以通过它的子类来创建它的对象。

创建方式二:

Calendar calendar = Calendar.getInstance();//获得当前时间返回的是子类的对象

通过getInstance方法来获得当前的时间。

在Calendar类当中我们只要掌握了解一个方法足矣 o( ̄▽ ̄)o

get()方法

返回给定日历字段的值。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class CalendarDemo01 {
    public static void main(String[] args) {
        //因为Calender是一个抽象类,所以它获得时间的方法并不是创建对象而获得的,直接通过调用方法获得时间
        //Calendar calendar = Calendar.getInstance();获得当前时间
        Calendar calendar = new GregorianCalendar();
        System.out.println("获得时间:" + calendar.getTime());
        System.out.println("获得年:" + calendar.get(Calendar.YEAR));
        System.out.println("获得月:" + (calendar.get(Calendar.MONTH) + 1));
        System.out.println("获得日:" + calendar.get(Calendar.DAY_OF_MONTH));
        System.out.println("获得星期:" + calendar.get(Calendar.DAY_OF_WEEK));
        System.out.println("获得一年中的第几天:" + calendar.get(Calendar.DAY_OF_YEAR));
    }
}

这些都是常有的属性。

在api当然还有许多其他的功能。Calendar所有的Fields:

当然在这不仅仅可以get,也是可以set时间进去的。

SimpleDateFormat类

这是一个具体的类,用于以区域来设置敏感的方式格式化和解析日期的。

主要用法:

  1. 将时间格式化为字符串
  2. 将字符串解析为时间

将时间格式化为字符串使用的方法:

public final String format(Date date)

将获得的值转换为字符串的形式,但是转换为字符串肯定是有向一个格式进行转换的。

所以我们在擦混给建SimpleDateFormat的时候给它格式进行转换。

将字符串转换为时间格式。

public Date parse(String source) throws ParseException

在这再说明一下,在常见生成转换为字符串的格式的时候,有两个方式传入pattern。

第一种:在创建的时候,直接传入pattern

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“yyyy-MM-dd—HH:mm:ss”);

第二中:通过方法传入pattern

simpleDateFormat.applyPattern(“yyyy-MM-dd—HH:mm:ss”);

代码总起演示一下:

public class Demo01 {
    public static void main(String[] args) throws ParseException {
        //创建SimpleDateFormat,并传入格式(pattern)
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd---HH:mm:ss");

        //将当前时间转换为String类型
        String string = simpleDateFormat.format(new Date());
        System.out.println(string);

        //将字符串转换为date类型的
        Date date = simpleDateFormat.parse(string);
        System.out.println(date);
    }
}

pattern每个字母代表的意义:

字母意义常用写发
G公元/公元前G
Y / yyyyy - 2001/ yy - 01
M / LMM / LL
w当年中的第几周ww
W当月中的第几周W
D当年中的第几天DDD
d当月中的第几天dd
F当月中的第几周F
E返回礼拜几(汉字)E
u一周的第几天u(1=Monday;7=Sunday)
a一天党的时间差a
H / k小时(0~23)HH / kk
h / K小时(0~11)hh / KK
mmm
sss
S毫秒SSS
z / Z / X时差——

常用写一个当然也是可以的,写多个是为了前面为0,补0规整一点

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/876436.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号