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. C# 虚方法、override和new

    使用new关键字来做调用 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...

  2. supervisor的安装部署及集群管理

    supervisor的安装部署及集群管理 supervisor官网:http://www.supervisord.org/ 参考链接: http://blog.csdn.net/xyang81/art ...

  3. php Pthread 多线程基本介绍

    我们可以通过安装Pthread扩展来让PHP支持多线程.   线程,有时称为轻量级进程,是程序执行的最小单元.线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,它与同属 ...

  4. NAND FLASH控制器

    一.nand flash访问原理 地址空间概念 nand的编址 nand命令  命令,地址,数据 使用S3C2440的nand flash控制器访问nand flash 前几个编译出来的文件都小于4k ...

  5. Java第08次实验提纲(多线程)

    PTA与参考资料 题集:多线程 多线程实验参考文件 ThreadReading 实验-基础部分 基础题目MyThread类.PrintTask(讲解线程Thread与任务Runnable相分离的概念) ...

  6. Unity3D工程版本管理方案【转自 兜里】

    参阅:http://outofmemory.cn/wr/?u=http%3A%2F%2Fblog.dou.li%2Funity3d%25e5%25b7%25a5%25e7%25a8%258b%25e7 ...

  7. servlet.xml 出现 Referenced file contains errors(http://.......)

    问题描述: 打开Eclipse突然发现Web工程的servlet.xml突然报了红叉叉,错误信息如下: Referenced file contains errors (http://www.spri ...

  8. python "爬虫+有道词典"实现一个简单翻译程序

    抓包软件使用的是Fiddler4 新版的查询接口 比较负责,引入了salt和sign http://fanyi.youdao.com/translate?smartresult=dict&sm ...

  9. Redis单线程单进程为什么效率那么高

    1.完全基于内存,绝大部分请求是纯粹的内存操作,非常快速.数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1): 2.数据结构简单,对数据操作也简单,Red ...

  10. 客户端负载均衡Ribbon之一:Spring Cloud Netflix负载均衡组件Ribbon介绍

    Netflix:['netfliːks] ribbon:英[ˈrɪbən]美[ˈrɪbən]n. 带; 绶带; (打印机的) 色带; 带状物;v. 把…撕成条带; 用缎带装饰; 形成带状;     L ...