一、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中和日期相关的类的更多相关文章

  1. Java工具类——日期相关的类

    前言 在日常的开发工作当中,我们经常需要用到日期相关的类(包括日期类已经处理日期的类),所以,我就专门整理了一篇关于日期相关的类,希望可以帮助到大家. 正文 一.日期类介绍 在 Java 里面,操作日 ...

  2. (1)StringBuilder类和StringBuffer类 (2)日期相关的类 (3)集合框架 (4)List集合

    1.StringBuilder类和StringBuffer类(查手册会用即可)1.1 基本概念 由于String类描述的字符串内容无法更改,若程序中出现大量类似的字符串时需要申请独立的内存空间单独保存 ...

  3. Java基础-日期格式化DateFormat类简介

    Java基础-日期格式化DateFormat类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.DateFormat类概述 DateFormat 是日期/时间格式化子类的抽象 ...

  4. Java基础 与时间日期相关的类:System -Date -SimpleDateFormat -Calendar类 -解决后缀.000Z 的时区问题

    笔记总结: /**与时间相关的类:System_Date_SimpleDateFormat_Calendar类 * 1.system 类下的currentTimeMillis() * 输出从1970年 ...

  5. Java mysql 日期相关

    获取当前系统时间和日期并格式化输出: import java.util.Date;import java.text.SimpleDateFormat; public class NowString { ...

  6. Java中日期格式化SimpleDateFormat类包含时区的处理方法

    1.前言 需要把格式为“2017-02-23T08:04:02+01:00”转化成”23-02-2017-T15:04:02“格式(中国时区为+08:00所以是15点),通过网上查找答案,发现没有我需 ...

  7. (1)String类 (2)StringBuilder类和StringBuffer类 (3)日期相关的类

    1.String类(重中之重)1.1 常用的方法(练熟.记住)(1)常用的构造方法 String() - 使用无参的方式构造空字符串对象. String(byte[] bytes) - 根据参数指定的 ...

  8. php 日期相关的类 DateInterval DateTimeZone DatePeriod

    * DateInterval <?php /** * Created by PhpStorm. * User: Mch * Date: 7/18/18 * Time: 21:30 */ $dat ...

  9. java8及8之前日期相关类

    java 8日期相关类 Instant:精确到纳秒的时间戳 Duration:处理有关基于时间的时间量 LocalDate:只包含日期,比如:2016-10-20 LocalTime:只包含时间,比如 ...

随机推荐

  1. Qt on Android: Android SDK安装

    之前我在 <Windows下Qt 5.2 for Android开发入门>一文中介绍了 Windows 下 Qt on Android 开发环境的搭建,略过了 Android SDK 的安 ...

  2. MVC批量更新,使用jQuery Template

    在"MVC批量更新,可验证并解决集合元素不连续控制器接收不完全的问题"中,当点击"添加"按钮的时候,通过部分视图,在界面上添加新行.本篇体验使用jQuery T ...

  3. Android开发之ListView条目批量选择删除

    ListView实现的列表,假设是可编辑,可删除的,一般都要提供批量删除功能,否则的话,一项一项的删除体验非常不好,也给用户带来了非常大的麻烦. 实现效果图 详细实现代码 select.xml 主布局 ...

  4. nyis oj 68 三点顺序 (计算几何基础)

    三点顺序 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 如今给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,如今让你推断A,B,C是顺时针给出的还是逆 ...

  5. 将properties文件放在Jar包并读取

    有时候需要在一个library内部打包一个properties文件,包含一些配置信息,而不能部署在外部. 在maven工程里面,将properties文件放在src/main/resources目录下 ...

  6. HDU4183 起点到终点再到起点 除起点每点仅经过一次 网络流

    题意: T个测试数据 n个圆 下面 fre x y r 表示圆的频率 坐标和半径 要求: 从频率为400(最小的) 圆 走到频率为789(最大)的圆,再走回来,除起点每个点只能经过一次 问这样的路径是 ...

  7. leetcode414-第三大的数

    给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大的数是 1. 示例 2 ...

  8. Trapping Rain Water leetcode java

    题目: Given n non-negative integers representing an elevation map where the width of each bar is 1, co ...

  9. Math Number 数值类 包装类 数学计算 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  10. ASP.NET MVC 编程参考

    ASP.NET MVC 编程参考   转载请注明出处:http://surfsky.cnblogs.com MVC    参考 http://msdn.microsoft.com/zh-cn/dd40 ...