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设计模式 第二部分 创建型模式(6):创建型模式专题总结(Creational Pattern)

    创建型模式专题总结(Creational Pattern) ——.NET设计模式系列之七 Terrylee,2006年1月 概述 创建型模式,就是用来创建对象的模式,抽象了实例化的过程.它帮助一个系统 ...

  2. HanLP用户自定义词典源码分析详解

    1. 官方文档及参考链接 l 关于词典问题Issue,首先参考:FAQ l 自定义词典其实是基于规则的分词,它的用法参考这个issue l 如果有些数量词.字母词需要分词,可参考:P2P和C2C这种词 ...

  3. Spark代码Eclipse远程调试

    我们在编写Spark Application或者是阅读源码的时候,我们很想知道代码的运行情况,比如参数设置的是否正确等等.用Logging方式来调试是一个可以选择的方式,但是,logging方式调试代 ...

  4. Java模板引擎之Freemarker

    Freemarker定义: 一款模板引擎 Freemarker是一个web图层组件不是web框架,解析服务端数据到页面 小例子: <#list 集合 as item> list标签对集合进 ...

  5. jpa随笔

    1对多的关系 //多的一方@Entity @Table(name="car_distribute") public class DistributeCar extends Cust ...

  6. Linux之chown

    命令功能: chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令, ...

  7. Oracle迁移到MySQL性能下降的注意点(转)

    背景:最近有较多的客户系统由原来由Oracle改造到MySQL后出现了性能问题CPU 100%,或是后台的CRM系统复杂SQL在业务高峰的时候出现堆积导致业务故障.在我的记忆里面淘宝最初从Oracle ...

  8. Django REST framework 源码剖析

    前言 Django REST framework is a powerful and flexible toolkit for building Web APIs. 本文由浅入深的引入Django R ...

  9. [VC6,VC9] [ts,nts,deb] [rpm,msi] 你需要下载什么格式的文件

    1.VC6与VC9的区别 VC6版本是使用Visual Studio 6编译器编译的,如果你的PHP是用Apache来架设的,那你就选择VC6版本. VC9版本是使用Visual Studio 200 ...

  10. vscode修改code runner插件默认使用的编译器

    code runner的原理就是自动帮你完成在控制台中输入切换路径和编译源代码以及运行编译好的程序的指令 编译指令是根据配置文件中一开始写好的模板来执行的 不同语言对应一条指令,运行code runn ...