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. npm install 包 失败解决方法

    在ionic 安装包的时候 npm install xxx --save 出现如下错误 查看日志文件 14 verbose stack SyntaxError: Unexpected token &l ...

  2. VMWare虚拟机安装 - 学习者系列文章

    以前笔者写过一个VMWare虚拟机的安装说明,但是那个版本比较低,已经过时,今天,讲讲VMWare的14版本的安装和使用说明. 首先,下载VMWare 14的安装文件,这里提供一下百度网盘文件: 链接 ...

  3. Hanlp在java中文分词中的使用介绍

    项目结构 该项目中,.jar和data文件夹和.properties需要从官网/github下载,data文件夹下载 项目配置 修改hanlp.properties: 1 #/Test/src/han ...

  4. 快速学习hadoop只有这些基础可不行

    “学习hadoop需要什么基础”这已经不是一个新鲜的话题了,随便上网搜索一下就能找出成百上千篇的文章在讲学习hadoop需要掌握的基础.再直接的一点的问题就是——学Hadoop难吗?用一句特别让人无语 ...

  5. 【转】CUDA之Dynamic Parallelism详解

    转自:http://blog.csdn.net/Bruce_0712/article/details/63683264 CUDA之Dynamic Parallelism详解(一) 1. 循环的并行化: ...

  6. Apache Kafka监控之KafkaOffsetMonitor

    转载自:http://www.cnblogs.com/Leo_wl/p/4564699.html 1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后, ...

  7. Uedit编辑器编辑Velocity

    1.切换到源代码模式 UM.getEditor('editor').execCommand("source"); 2.给编辑器插入Velocity源码 $(".edui- ...

  8. PICT测试工具的安装及使用

    PICT工具就是在微软公司出品一款成对组合的命令行生成工具,现在已经对外提供,可以在互联网上下载到 .PICT 可以有效地按照两两测试的原理,进行测试用例设计.在使用PICT时,需要输入与测试用例相关 ...

  9. SpringBoot集成RabbitMQ

    官方说明:http://www.rabbitmq.com/getstarted.html 什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.MQ ...

  10. 记录一次OOM分析过程

    工具: jstat jmap jhat 1.jstat查看gc情况 S0C.S1C.S0U.S1U:Survivor 0/1区容量(Capacity)和使用量(Used) EC.EU:Eden区容量和 ...