1.System 类  2.Date 类  3.SimpleDateFormate 类  4.Calendar 类  


1.System 类

  得到当前的时间值。System 类不能被实例化,需要通过它的静态方法调用。

  使用System类 currentTimeMillis() 方法,获取当前系统时间。返回以毫秒为单位的时间,值的粒度取决于底层操作系统。返回值类型:long

long currentTime = System.currentTimeMillis();

2.Date类

  时间类,可以获取到一个时间类型的对象。可以使用该类提供的方法,设置一个想要得到的 Date 类型;同时可以得到一个时间类型信息的绝对时间值。

2.1.构造方法

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

Date 类的构造方法

格式

参数列表

说明

示例

new Date()

空参

获取到一个表示当前系统时间的对象

Mon Jul 02 20:19:48 CST 2018

Date(long Date)

long 类型整数,以毫秒计的绝对时间

   
  • 空参获取当前时间,指定 long 类型整数获取 该整数 对应的时间点
System.out.println((new Date())); // 打印当前系统时间
System.out.println(new Date(0)); // 打印绝对时间为 0 的时间点信息
System.out.println(new Date(-3600 * 1000 * 24)); // 打印绝对时间前一天 的时间点信息

2.2.常用方法

Date 类的常用方法

方法格式

说明

 public long getTime()  返回绝对时间
 public void setTime(long time)  以绝对时间重置对象

3.SimpleDateFormat类

  • 两类处理

    • 格式化:  -  使时间信息可读性更好
    • 解析:  -  便于计算
构造方法

格式

参数列表

说明

 SimpleDateFormat()    直接创建空模式对象(使用默认模式)
 SimpleDateFormat(String pattern)  通过 pattern 指定“格式化 / 解析”时间显示格式  创建对象时,顺带指定匹配模式
  • pattern

    pattern 是一串字符串,由元字符构造。用来指定时间信息显示格式。

pattern 模式

元字符

说明

举例

 y  年

yyyy年MM月dd日

HH:mm:ss SSS

a hh:mm

 M  年中的月份
 d  月份中的天数
 a  AM / PM 标记
 H  一天中的小时数(0-23)
 h  一天中的小时数(1-12)
 m  小时中的分钟数
 s  分钟中的秒数
 S  毫秒数
  • 常用方法
常用方法

处理

格式

说明

格式化  String format(Date date)  把 Date 类的时间信息以 指定格式输出
解析  Date parse(String source)  解析字符串

示例:常用用法

String arg1 = new SimpleDateFormat("y-MM-dd").format(new Date());
Date arg2 = new SimpleDateFormat("y-MM-dd").parse("arg1");

3.1.格式化输出

  • 按照指定模式显示时间信息
SimpleDateFormat sdf = new SimpleDateFormat();

String year = "yyyy年"; // 指定模式
String mon = "MM月";
String day = "dd日";
Date date = new Date(); sdf.applyPattern(year); // 切换对象的匹配模式
System.out.println(sdf.format(date)); //如:2013年
sdf.applyPattern(mon);
System.out.println(sdf.format(date)); //如:07月
sdf.applyPattern(day);
System.out.println(sdf.format(date)); //如:01日

  输出完整的时间信息(2038年05月15日  下午 04:14)

String pattern = "yyyy年MM月dd日  a hh:mm";
sdf.applyPattern(pattern); // 切换模式匹配
System.out.println(sdf.format(date)); // 输出时间信息

  输出完整的时间信息(2038年5月15日  下午 4:16)

String pattern = "y年M月d日  a h:m";

  输出完整的时间信息(时间以24小时格式显示)

String pattern = "y年M月d日 H:m";
  • 在创建对象时,可以修改默认匹配模式

  在创建对象时指定了匹配模式,对象的使用过程中一样可以修改匹配模式

String pattern = "y年M月d日 H:m";
SimpleDateFormat sdf = new SimpleDateFormat(pattern); pattern = "y年M月d日";
sdf.applyPattern(pattern); // 切换匹配模式
date = new Date(); // 获取当前时间
System.out.println(sdf.format(date)); // 输出日期信息

3.2.解析时间字符串

  解析时间的时候,时间字符串的模式必须要匹配模式 pattern

SimpleDateFormat sdf = new SimpleDateFormat();

String pattern = "y年M月d日 H:m";
sdf.applyPattern(pattern);
Date date = sdf.parse("2038年5月15日 4:16");

在解析时间字符串时,要是模式中日期与时间之间有空白字符,解析的字符串需要严格匹配。

4.Calendar 类

  该类为操作日历字段,提供了一些方法。

  这是一个抽象类,构造对象时,可以使用其提供的一个静态方法得到该类的通用对象。该方法获取当前时间

Calendar cal = Calendar.getInstance(); // 获取一个当前时刻的 Calendar类 时间
  • 常用方法
 

操作方法格式

参数

返回值

说明

获取  public int get(int field) 日历字段,是一个枚举数字 日历对应的字段信息 获取指定字段的值
   public final Date getTime()   返回该类的 Date 对象  
修改  public abstract void add(int field, int amount) 偏移量可以是个负值 无 修改指定的日历字段,增加amount
清除  public final void clear()     所有日历字段、时间值设置成未定义
   public final void clear(int field)     指定字段设定为 未定义
设置  public void set(int field, int value)     设置字段
   public final void setTime(Date date)     使用Date值设置Calendar值

4.1.日历字段值

  • 获取日历字段值:
System.out.println(Calendar.YEAR); // 1
System.out.println(Calendar.MONTH); // 2,月份的表示从0开始的;0代表的是1月
System.out.println(Calendar.DAY_OF_MONTH); // 5 System.out.println("" + cal.get(1) + cal.get(2) + cal.get(5)); // 直接输出时月份少了一个月
  • 获取时间字段值:
System.out.println(Calendar.HOUR_OF_DAY); //
System.out.println(Calendar.HOUR); //
System.out.println(Calendar.MINUTE); //
System.out.println(Calendar.SECOND); //
System.out.println(Calendar.MILLISECOND); // System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 0-23格式小时
System.out.println(cal.get(Calendar.HOUR)); // 1-12格式小时
System.out.println(cal.get(Calendar.MINUTE)); // 分钟
System.out.println(cal.get(Calendar.SECOND)); // 秒
System.out.println(cal.get(Calendar.MILLISECOND)); // 毫秒

Java 时间类的更多相关文章

  1. java时间类简单总结

    java时间类(Data类) 1.Data类(没有考虑到国际化,好多方法已过时java.util.Data包中) 父类(是类不是接口含有直接子类3个):  日期格式为:年月日时分秒(不包含毫秒部分) ...

  2. Java时间类从此变得清晰明了

    Java时间类 Java时间类分为Date 日期类和Calendar 日历类,相信很多小伙伴在初学时会对这个两个类的用法.区别以及有什么联系会感到疑惑,似乎懂了,但又不能具体说清,今天再带你来清晰的再 ...

  3. java时间类Date、Calendar及用法

    对于时间类,这篇主要说明各种现实情况下如何取值,怎么定向取值,得到自己想要的时间参数.在java中时间类主要有Date.Calendar,暂时只介绍 java.util.*下的时间类,对于java.s ...

  4. Java时间类总结

    java.util.Date 包含有年月日时分秒,精确到毫秒级别. 官方解释: // The class Date represents a specific instant in time, wit ...

  5. Java 时间类-Calendar、Date、LocalDate/LocalTime

    1.Date 类 java.util.Date是一个"万能接口",它包含日期.时间,还有毫秒数,如果你只想用java.util.Date存储日期,或者只存储时间,那么,只有你知道哪 ...

  6. Java时间类(转)

    package com.chinagas.common.utils; import java.text.ParseException; import java.text.SimpleDateForma ...

  7. Java 时间类 Date 和 Calendar

    在项目中获取一个yyyy-MM-dd HH:mm:ss格式的时间字符串 package org.htsg.kits; import java.text.SimpleDateFormat; import ...

  8. Java中常见时间类的使用

    模拟场景针对于常用的操作API,比如流操作(字符流.字节流),时间操作等,仅仅了解概念性的定义终究是无法了解该类的用途和使用方式:这种情况在使用的时候便一脸茫然,脑海中映射不到对应的知识点.本篇博客将 ...

  9. Java Calendar类使用总结

    平时在浏览一些网站时,有些网站会显示出当前时间,如现在是xx年xx月xx日 xx时xx分xx秒,在实际的开发过程中,也会涉及到日期和时间的计算,Java中提供了一个专门的类Calendar来处理日期与 ...

随机推荐

  1. NET设计模式 第二部分 结构性模式(11):外观模式(Façade Pattern)

    外观模式(Façade Pattern) ——.NET设计模式系列之十二 Terrylee,2006年3月 概述 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着 ...

  2. RedHat7.3安装MySQL5.7

    1.下载Mysql安装包 https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar 附百度 ...

  3. RedHat6.5如何被windows系统远程桌面连接

    一.redhat 6.5远程桌面配置 服务器端: 1.设置允许其它人查看您的远程桌面 在“系统”-“首选项”-“远程桌面”-在“允许其它人查看您的远程桌面”前打勾:在“允许其它用户控制您的桌面”打勾 ...

  4. 开源截图工具cutycapt的安装及使用

    之前在安装过程中碰到很多问题,也找了不少资料.现总结了下,给有需要的朋友.centos下安装cutycapt比较麻烦,需要先安装qt47,再下载cutycapt源码编译;而在ubuntu下安装cuty ...

  5. 【MySQL】批量数据循环插入

    双重循环插入 DELIMITER ;; CREATE PROCEDURE test_insert() BEGIN ; ; ) DO -- repeat ; -- select a; ) DO ); ; ...

  6. python 中变量引用问题

    普通变量,如a=10,str="fdaf",它们在函数内的值是不会被带到函数外的,除非在函数内加上global,而引用是惰性原则,从最近的同名父级同名变量引用值 其它变量如列表,字 ...

  7. 禁止用键盘左右箭头,去切换PageControl页签

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  8. <亲测>.NET Core项目在Linux上使用QRCoder时出错"Unable to load DLL 'gdiplus'"

    Centos 7 解决方案如下: yum install libgdiplus-devel

  9. 【转】在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法

    参考 原文链接 @Transactional does not work on method level 描述 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational) ...

  10. Spark 在Hadoop HA下配置HistoryServer问题

    我的Spark机群是部署在Yarn上的,因为之前Yarn的部署只是简单的完全分布式,但是后来升级到HA模式,一个主NN,一个备NN,那么Spark HistoryServer的配置也需要相应的做修改, ...