21、java中和日期相关的类
一、Data及其常用API
1、简介
Java中的时间使用标准类库的java.util.Date,其表示特定的瞬间,精确到毫秒。是用距离一个固定时间点的毫秒数(可正可负,long类型)表达一个特定的时间点。
固定的时间点叫纪元(epoch),是UTC时间1970年 1月 1日 00:00:00 ,UTC(Universal Time Coordinated世界调整时间)与GMT(Greenwich Mean Time格林威治时间)一样,是一种具有实际目的的科学标准时间。
因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代,该类我们稍后会讲解。
2、构造函数
①:new Date() :返回系统当前时间的Date对象
②:new Date(long date):给定指定毫秒数,返回Date对象
③:new Date(int year, int month,int date) :根据年月日返回Date对象
注意:year:107表示2007年 年份=1900+year 。例如要表示2015年,则year=2015-1900=115
month:0表示1月 月份=month+1 。例如要表示6月,则month=6-1=5 。如果月份大于11会产生向年份进位。
date:日如果大于该月的最大值时,同样会向月进位
④:new Date(int year,int month,int date,int hrs,int min)
⑤:new Date(int year,int month,int date,int hrs,int min,int sec)
注意:时分秒同样也会产生进位
3、常用方法
①:setTime(long time) 设置一个时间,long表示的这个时间点距离1970年1月1日 00:00:00之间的毫秒差。
②:getTime():获取该时间距离1970年1月1日 00:00:00之间的毫秒差
二、SimpleDateFormat
1、简介
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
2、日期模式匹配字符串
| 字符 | 含义 | 示例 |
| y | 年 | yyyy年---2015年 |
| M | 月 | MM月--03月 |
| d | 日 | dd日--12日 |
| E | 星期 | E--星期日 |
| a | 上下午 | a--上午(AM) |
| H | 24小时制 | HH时--16时 |
| h | 12小时制 | hh时--04时 |
| m | 分 | mm--23分 |
| s | 秒 | ss--59秒 |
| S | 毫秒 | SSS毫秒-567毫秒 |
例如yyyy-MM-dd HH:mm:ss.SSS可以匹配2015-06-02 14:32:13.546
3、将Date转换成String
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
System.out.println(sdf.format(date));
4、将String转换成Date
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date =sdf.parse("2015-06-02 14:35:36.000");
System.out.println(date);
三、Calendar类
1、简介
java.util.Calendar 类用于封装日历信息,其主要作用在于其方法可以对时间分量进行运算。
Calendar是抽象类,其具体子类针对不同国家的日历系统,其中应用最广泛的是GregorianCalendar(格里高里历,即通用的阳历),对应世界上绝大多数国家/地区使用的标准日历系统。
2、 getInstance()方法
Calendar是抽象类,其提供了一个工厂方法:Calendar getInstance()。该方法可以根据当前系统所在地区获取一个适当的Calendar的子类实现。
在实际开发中,也推荐使用该方法来实例化Calendar的对象。
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Calendar calendar=Calendar.getInstance();
System.out.println(sdf.format(calendar.getTime()));
3、设置日期及时间分量
Calendar提供了一种通用的设置时间的方式:
void set(int field,int value)
该方法可以通过对不同的时间分量分别设置不同的值。Calendar对不同的时间分量提供了相应的常量,我们在使用set方法设置时,第一个参数就应当使用对应的常量作为时间分量。
注意:分量month同样从0开始,分量也有进位的可能
4、setTime与getTime
设置和获取的对象都是Data类型,而Date对象对应的这两个方法,是long类型的
5、void add(int field,int amount)
该方法可以为某个时间分量的值加上给定的值,若想减去给定的值,那么传入的值需要时负数即可。并且计算后会自动进行相应的进位。
6、int getActualMaximum(int field)
获取该分量的最大值
21、java中和日期相关的类的更多相关文章
- Java工具类——日期相关的类
前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...
- (1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合
1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...
- Java基础-日期格式化DateFormat类简介
Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...
- Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题
笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...
- Java mysql 日期相关
获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowString { ...
- Java中日期格式化SimpleDateFormat类包含时区的处理方法
1.前言 需要把格式为“2017-02-23T08:04:02+01:00”转化成”23-02-2017-T15:04:02“格式(中国时区为+08:00所以是15点),通过网上查找答案,发现没有我需 ...
- (1)String类 (2)StringBuilder类和StringBuffer类 (3)日期相关的类
1.String类(重中之重)1.1 常用的方法(练熟.记住)(1)常用的构造方法 String() - 使用无参的方式构造空字符串对象. String(byte[] bytes) - 根据参数指定的 ...
- php 日期相关的类 DateInterval DateTimeZone DatePeriod
* DateInterval <?php /** * Created by PhpStorm. * User: Mch * Date: 7/18/18 * Time: 21:30 */ $dat ...
- java8及8之前日期相关类
java 8日期相关类 Instant:精确到纳秒的时间戳 Duration:处理有关基于时间的时间量 LocalDate:只包含日期,比如:2016-10-20 LocalTime:只包含时间,比如 ...
随机推荐
- 用最简单的例子理解备忘录模式(Memento Pattern)
简单来说,备忘录模式就是支持回退操作.假设让一个Notepad支持回退操作,如何实现呢? 首先需要一个备忘录类. public class Memento { private string _msg; ...
- 构建一个高可扩展性javabean和jsp连接数据库操作
1. 我们先在Tomcat 中创建一个DataSource- jdbc/Panabia,然后再创建一个java“基类”,这个类封装了数据库连接和连接的释放. package Panabia.db; i ...
- 关于查询排序DTO的封装
DTO: public class SortDto { //排序方式 private String orderType; //排序字段 private String orderField; publi ...
- <mvc:annotation-driven />做了什么
<mvc:annotation-driven /> 是一种简写形式,完全可以手动配置替代这种简写形式,简写形式可以让初学都快速应用默认配置方案.<mvc:annotation-dri ...
- seqgan leakgan
seqgan https://blog.csdn.net/yinruiyang94/article/details/77675586 leakgan https://www.leiphone.com/ ...
- Android中Dialog对话框的调用及监听
Android中经常会需要在Android界面上弹出一些对话框提示用户,比如App的退出的时候都会有各种框来挽留你的心,支付宝的时候输入密码的密码框,非常常见及其实用的功能,类似于JS中的alter, ...
- Insertion Sort List Leetcode java
题目: Sort a linked list using insertion sort. 题解: Insertion Sort就是把一个一个元素往已排好序的list中插入的过程. 初始时,sorted ...
- Android -- Fragment注意事项
ViewPager+Fragment 让Fragment成为ViewPager的一页时,FragmentManager会一直保存管理创建好了的Fragment,即使当前不是显示的这一页,Fragmen ...
- 关于NLPIR应用在KETTLE中的探索
一:什么是NLPIR? NLPIR汉语分词系统(自然语言处理与信息检索共享平台),主要功能包括中文分词:词性标注:命名实体识别:用户词典功能:支持GBK编码.UTF8编码.BIG5编码.新增微博分词. ...
- mssql2008R2 RCU-6083:ALTER database FWC SET READ_COMMITTED_SNAPSHOT ON
RCU-6083:失败 - 检查所选组件的先决条件要求:MDS 有关详细资料, 请参阅 E:\Setup\ofm_rcu\rcu\log\logdir.2014-11-27_12-39\rcu.log ...