Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类
Date类
类 Date 表示特定的瞬间,精确到毫秒。
毫秒概念:1000毫秒=1秒
毫秒的0点:
System.currentTimeMillis() 返回值long类型参数
用于获取当前日期的毫秒值
时间的原点:公元1970年 一月一日,午夜0:00:00 对应的毫秒值就是0
注意:时间和日期的计算,必须依赖毫秒值
//创建日期对象,把当前的毫秒值转成日期对象
Date date = new Date(1607616000000L);
System.out.println(date);
//打印结果:Fri Dec 11 00:00:00 CST 2020
Date中方法:
long |
getTime() 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 |
DateFormat
DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。
日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
我们通过这个类可以帮我们完成日期和文本之间的转换。
SimpleDateFormat的构造方法:
SimpleDateFormat() 用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。 |
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)用给定的模式和日期符号构造 SimpleDateFormat。 |
SimpleDateFormat(String pattern, Locale locale)用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。 |
DateFormat常用方法:
Object |
clone() 重写 Cloneable |
boolean |
equals(Object obj)重写 equals |
String |
format(Date date)将一个 Date 格式化为日期/时间字符串。 |
abstract StringBuffer |
format(Date date, StringBuffer toAppendTo, FieldPosition fieldPosition)将一个 Date 格式化为日期/时间字符串。 |
StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition fieldPosition)重写 Format。 |
static Locale[] |
getAvailableLocales()返回所有语言环境的数组,此类的 get*Instance方法可以为其返回已本地化的实例。 |
Calendar |
getCalendar()获取与此日期/时间格式器关联的日历。 |
static DateFormat |
getDateInstance()获取日期格式器,该格式器具有默认语言环境的默认格式化风格。 |
static DateFormat |
getDateInstance(int style)获取日期格式器,该格式器具有默认语言环境的给定格式化风格。 |
static DateFormat |
getDateInstance(int style,获取日期格式器,该格式器具有给定语言环境的给定格式化风格。 |
static DateFormat |
getDateTimeInstance()获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格。 |
static DateFormat |
getDateTimeInstance(int dateStyle,获取日期/时间格式器,该格式器具有默认语言环境的给定日期和时间格式化风格。 |
static DateFormat |
getDateTimeInstance(int dateStyle,获取日期/时间格式器,该格式器具有给定语言环境的给定格式化风格。 |
static DateFormat |
getInstance()获取为日期和时间使用 SHORT 风格的默认日期/时间格式器。 |
NumberFormat |
getNumberFormat()获取此日期/时间格式器用于格式化和解析时间的数字格式器。 |
static DateFormat |
getTimeInstance()获取时间格式器,该格式器具有默认语言环境的默认格式化风格。 |
static DateFormat |
getTimeInstance(int style)获取时间格式器,该格式器具有默认语言环境的给定格式化风格。 |
static DateFormat |
getTimeInstance(int style,获取时间格式器,该格式器具有给定语言环境的给定格式化风格。 |
TimeZone |
getTimeZone()获取时区。 |
int |
hashCode()重写 hashCode |
boolean |
isLenient()判断日期/时间解析是否为不严格的。 |
Date |
parse(String source)从给定字符串的开始解析文本,以生成一个日期。 |
abstract Date |
parse(String source, ParsePosition pos)根据给定的解析位置开始解析日期/时间字符串。 |
Object |
parseObject(String source, ParsePosition pos)解析字符串中的文本,以生成一个 Date。 |
void |
setCalendar(Calendar newCalendar)设置此日期格式所使用的日历。 |
void |
setLenient(boolean lenient)指定日期/时间解析是否不严格。 |
void |
setNumberFormat(NumberFormat newNumberFormat)允许用户设置数字格式器。 |
void |
setTimeZone(TimeZone zone) 为此 DateFormat 对象的日历设置时区。 |
Calendar类
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象,如下:
Calendar类常用方法:
abstract void |
add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 |
boolean |
after(Object when)判断此 Calendar 表示的时间是否在指定 Object表示的时间之后,返回判断结果。 |
boolean |
before(Object when)判断此 Calendar 表示的时间是否在指定 Object表示的时间之前,返回判断结果。 |
void |
clear()将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 |
void |
clear(int field)将此 Calendar 的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 |
Object |
clone()创建并返回此对象的一个副本。 |
int |
compareTo(Calendar anotherCalendar)比较两个 Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。 |
protected |
complete()填充日历字段中所有未设置的字段。 |
protected abstract |
computeFields()将当前毫秒时间值 time 转换为 fields[]中的日历字段值。 |
protected abstract |
computeTime()将 fields[]中的当前日历字段值转换为毫秒时间值 time。 |
boolean |
equals(Object obj)将此 Calendar 与指定 Object 比较。 |
int |
get(int field)返回给定日历字段的值。 |
int |
getActualMaximum(int field)给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。 |
int |
getActualMinimum(int field)给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。 |
static Locale[] |
getAvailableLocales()返回所有语言环境的数组,此类的 getInstance 方法可以为其返回本地化的实例。 |
String |
getDisplayName(int field, 返回给定 style 和 locale 下的日历 field值的字符串表示形式。 |
Map<String,Integer> |
getDisplayNames(int field, 返回给定 style 和 locale 下包含日历 field 所有名称的Map 及其相应字段值。 |
int |
getFirstDayOfWeek()获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是MONDAY。 |
abstract |
getGreatestMinimum(int field)返回此 Calendar 实例给定日历字段的最高的最小值。 |
static Calendar |
getInstance()使用默认时区和语言环境获得一个日历。 |
static Calendar |
getInstance(Locale aLocale)使用默认时区和指定语言环境获得一个日历。 |
static Calendar |
getInstance(TimeZone zone)使用指定时区和默认语言环境获得一个日历。 |
static Calendar |
getInstance(TimeZone zone, Locale aLocale)使用指定时区和语言环境获得一个日历。 |
abstract |
getLeastMaximum(int field)返回此 Calendar 实例给定日历字段的最低的最大值。 |
abstract |
getMaximum(int field)返回此 Calendar 实例给定日历字段的最大值。 |
int |
getMinimalDaysInFirstWeek()获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。 |
abstract |
getMinimum(int field)返回此 Calendar 实例给定日历字段的最小值。 |
Date |
getTime()返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。 |
long |
getTimeInMillis()返回此 Calendar 的时间值,以毫秒为单位。 |
TimeZone |
getTimeZone()获得时区。 |
int |
hashCode()返回该此日历的哈希码。 |
protected |
internalGet(int field)返回给定日历字段的值。 |
boolean |
isLenient()判断日期/时间的解释是否为宽松的。 |
boolean |
isSet(int field)确定给定日历字段是否已经设置了一个值,其中包括因为调用 get方法触发内部字段计算而导致已经设置该值的情况。 |
abstract |
roll(int field, 在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。 |
void |
roll(int field, 向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。 |
void |
set(int field, 将给定的日历字段设置为给定值。 |
void |
set(int year, 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 |
void |
set(int year, 设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY和 MINUTE 的值。 |
void |
set(int year,设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE和 SECOND 的值。 |
void |
setFirstDayOfWeek(int value)设置一星期的第一天是哪一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是MONDAY。 |
void |
setLenient(boolean lenient)指定日期/时间解释是否是宽松的。 |
void |
setMinimalDaysInFirstWeek(int value)设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。 |
void |
setTime(Date date)使用给定的 Date 设置此 Calendar 的时间。 |
void |
setTimeInMillis(long millis)用给定的 long 值设置此 Calendar 的当前时间值。 |
void |
setTimeZone(TimeZone value)使用给定的时区值来设置时区。 |
String |
toString()返回此日历的字符串表示形式。 |
Java—时间的原点 计算时间所使用的 Date类/DateFormat类/Calendar类的更多相关文章
- java ->Date、DateFormat、Calendar类
Date类概述 类 Date 表示特定的瞬间,精确到毫秒. 毫秒概念:1000毫秒=1秒 毫秒的0点: System.currentTimeMillis() 相当于Date d = new Date ...
- JAVA常用API(Date、DateFormat、Calendar、System、Math、基本数据类型包装类)
注:本文所有内容均属个人见解,如有错误望各位大佬好心指点批评,不胜感激 本章重点单词: parse:解析 format:格式化 pattern:模式 amount:数量 filed :领域 1.Dat ...
- java时间日期类(Date、DateFormat、Calendar)学习
1.Date类 常用方法:long getTime(),用于返回当前时刻的毫秒值 Date d = new Date(2000); System.out.println(d.getTime());// ...
- Java基础学习笔记十三 常用API之正则表达式、Date、DateFormat、Calendar
正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在 ...
- Java基础学习笔记三 正则表达式和校验、Date、DateFormat、Calendar
正则表达式 正则表达式(英语:Regular Expression,在代码中常简写为regex).正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配一系列符合某个句法规则的字符串.在 ...
- Java—包装类、Date和SimpleDateFormat、Calendar类
包装类 基本数据类型不能调用方法,功能简单,为了让基本数据类型也具备对象的特性,Java为每个基本数据类型提供了一个包装类,这样就可以像操作对象那样来操作基本数据类型. 基本类型和包装类之间的对应关系 ...
- java基础(16):正则表达式、Date、DateFormat、Calendar
1. 正则表达式 1.1 正则表达式的概念 正则表达式(英语:Regular Expression,在代码中常简写为regex). 正则表达式是一个字符串,使用单个字符串来描述.用来定义匹配规则,匹配 ...
- C++方式解析时间字符串和计算时间
#include "StdAfx.h"#include "MySetTimeByVT.h" #include <ATLComTime.h>#incl ...
- Java日期时间API系列21-----Jdk8中java.time包中的新的日期时间API类,xk-time时间转换,计算,格式化,解析的工具
通过工作之余,对Java8中java.time包源码的不断学习,使用和总结,开发了xk-time,初步完成,欢迎试用和提出建议! xk-time xk-time is a datetime conve ...
随机推荐
- python3利用cryptography 进行加密和解密
我们的日常工作中,一定会遇到需要加密的数据,比如:密码.私密信息... ... 我们不仅要对他们进行加密,更需要对他们进行解密,因为毕竟我们的用户应该不会看得懂加密过后的字符串吧!!! 在python ...
- Jmeter(十八) - 从入门到精通 - JMeter后置处理器 -下篇(详解教程)
1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如 ...
- Mybatis——Mapper代理
mapper的代理对象生成位于org.apache.ibatis.binding.MapperProxyFactory的newInstance方法,使用jdk的动态代理,代理的InvocationHa ...
- Python程序设计(第3版)PDF高清完整版免费下载|百度网盘
百度网盘:Python程序设计(第3版)PDF高清完整版免费下载 提取码:48u4 内容简介 本书是面向大学计算机科学专业第一门程的教材.本书以Python语言为工具,采用相当传统的方法,强调解决问题 ...
- JVM系列之:String.intern和stringTable
目录 简介 intern简介 intern和字符串字面量常量 分析intern返回的String对象 分析实际的问题 G1中的去重功能 总结 简介 StringTable是什么?它和String.in ...
- java基础(七)--基本类型转换
一.转换规则 1.类型转换的原则是: 小容量可以自动转成大容量,大容量转成小容量,需要强制转换,有些类型之前不能转换 判断以下语句是否符合要求 2.默认的识别数字 整数默认->int 浮点数默认 ...
- 开源项目推荐 - 巨鲸任务调度平台(Spark、Flink)
Big Whale(巨鲸),为美柚大数据研发的大数据任务调度平台,提供Spark.Flink等离线任务的调度(支持任务间的依赖调度)以及实时任务的监控,并具有批次积压告警.任务异常重启.重复应用监测. ...
- NGINX 上的限流
NGINX 上的限流(译) zlup YP小站 今天 前言 本文是对Rate Limiting with NGINX and NGINX Plus的主要内容(去掉了关于NGINX Plus相关内容) ...
- python工业互联网应用实战3—模型层构建
本章开始我们正式进入到实战项目开发过程,如何从需求分析获得的实体数据转到模型设计中来,变成Django项目中得模型层.当然,第一步还是在VS2019 IDE环境重创建一个工程项目,本文我们把工程名称命 ...
- org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/book]] Tomcat ServletXml 异常
此异常是因为xml配置serlvet-url-pattern缺少’/’ 应该改为 /regist 背景: 写了base标签 form表单的action属性的值 个人分析: ️表单提交时 ...