Java当中表示时间和日期的工具类

Java 专栏收录该内容
23 篇文章 0 订阅

Java当中表示时间和日期的工具类


前言

时间原点(0毫秒):1970-1-1日00:00:00(英国格林威志)

Java的Api当中为我们提供了一些 操作时间和日期的工具类

一、java.util.Date

类Date精确到毫秒 毫秒:一秒等于一千毫秒 1=1000
毫秒值的作用:可以对时间和日期经行计算
0毫秒的作用可以把年份转换成毫秒经行计算,然后再把毫秒转换成日期输出

把日期转换为毫秒:
时间原点(0毫秒):1970-1-1日00:00:00(英国格林威志)
注意:
把毫秒转换成日期:
1天=24×60×60=86400秒×1000=86400000毫秒
中国属于东八区,会把时间增加八个小时
获取当前时间 :

new Date().getTime()

Date类的空参数构造方法,用于获取系统的当前时间

Date date=new Date();

Data类的带参构造方法,传递毫秒值,把毫秒值转换成日期

Date date=new Date(long date)

二、SimpleDateFormat类】

提供可以格式化日期和解析字符串为日期的方法。

格式化:日期–》文本
解析:文本–》日期

按照指定模式,把Date日期,格式化为符合模式的字符串

String format(Date date)

把符合模式的字符串,解析成日期

Date parse(String source)

含参构造方法:

new SimpleDateFormat(String pattern)

传递给定模式的字符参数:
模式(严格区分大小写):
年 y
月 M
日d
时H
分m
秒s

格式化的调用:

创建SimpleDateFomat的对象传递模式字符参数,然后使用对象调用format方法将Date类型的参数 传入fomat方法。
解析的调用: 创建SimpleDateFormat的对象(含参构造),然后通过对象调用parse方法。
传递的参数是跟构造方法模式对应的字符串,即可得到Date类型的日期返回值

注意:

parse有抛出异常所以必须要对异常进行处理,要么try。。。carth自己处理异常,要么选择继续抛出异常

public class Demo1DatePrint {
    public static void main(String[] args) throws ParseException {
        Date date1=new Date();
        System.out.println("时间原点到当前的毫秒:"+date1.getTime());
        System.out.println("当前的日期:"+date1);
        Date date2=new Date(159183923653L);
        System.out.println("含参构造方法将long型的数字转换成日期"+date2);
        SimpleDateFormat impl=new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
        String str=impl.format(date2);
        System.out.println("讲啊日期按照指定的模式格式化成文本输出:"+str);
        Date date3=impl.parse("1975-01-17-17-45-23");
        System.out.println("将给定模式的字符串解析成日期,模式跟构造方法不一样就会抛出异常"+date3);
    }
}

运行结果:

时间原点到当前的毫秒:1591841401958
当前的日期:Thu Jun 11 10:10:01 CST 2020
含参构造方法将long型的数字转换成日期Fri Jan 17 17:45:23 CST 1975
讲啊日期按照指定的模式格式化成文本输出:1975-01-17-17-45-23
将给定模式的字符串解析成日期,模式跟构造方法不一样就会抛出异常Fri Jan 17 17:45:23 CST 1975

三、Calendar类的常用方法(抽象类)

import java.util.Calendar;

public int get(int field); 返回给定日历字段的值

public void set(int field,int value);将给定日历字段设置为给定值

public abstract void add(int field ,int amount);按照日立的规则,为给定的日历字段添加或减去指定的时间量

public DategetTime();返回一个表示次Calendar时间值(从历元到现在的毫秒偏移量)的Date对象

Calendar类是一个抽象类,所以要调用一个getInstance()方法获取实现类的对象

源码如下:

 public static Calendar getInstance()
    {
        return createCalendar(TimeZone.getDefault(), Locale.getDefault(Locale.Category.FORMAT));
    }

实列:

public class Demo3Calendar {
    //Calendar类是一个抽象类,所以要调用一个getInstance()方法获取实现类的对象
    public static void main(String[] args) {
        Calendar c=Calendar.getInstance();
        //返回指定日历字段的值
        int i = c.get(Calendar.YEAR);//返回年份
        System.out.println("当前的年份"+i);
        c.set(Calendar.YEAR,2088);//给指定的字段设置为指定的值
        c.set(Calendar.MONTH,11);
        System.out.println("输出设置的月份"+c.get(Calendar.MONTH)+1);//国外的月份是0-11所以想要输出12月要加1
        System.out.println("set设置后的年份"+c.get(Calendar.YEAR));
        //按照日立的规则给指定的时段增加或者减去指定的值c
        c.add(Calendar.YEAR,-50);//之前设置的年份减去50年(指定值的正负,代表了加减的意思)
        System.out.println("add方法减去指定值的年份是"+c.get(Calendar.YEAR));
        System.out.println("获取历元到现在的毫秒偏移量的Date对象值"+c.getTime());


    }
}

运行结果:

当前的年份2020
输出设置的月份11
set设置后的年份2088
add方法减去指定值的年份是2038
获取历元到现在的毫秒偏移量的Date对象值Sat Dec 11 11:20:34 CST 2038

四、System类

该类有一个获取本地时间的静态方法currentTimeMillis()

public static native long currentTimeMillis();

System.CurrentTimeMillis();输出时间原点到现在的毫秒值

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值