一、Date类简介

日期类主要包括Date类与Calendar类,这一节我们先介绍Date类, Date 表示特定的瞬间,精确到毫秒。Date类用于表示日期和时间,在计算机中的表示和我们现实世界使用差不多,但是还是有点区别的,而且还有中西文化之间的差异,所以在学习这个类之前,我们清楚Date类和现实世界之间对世界的之间的差异:

  • 年份由整数表示,但是Date类的年份由1900开始算,也就是Date类的年份为y,那么现实世界就是 y + 1900 表示。

  • 月份由从 0 至 11 的整数表示,也就是0 是一月、1 是二月等等;因此 11 是十二月。

  • 日期(一月中的某天)按通常方式由整数 1 至 31 表示,这点和现实世界一致。

  • 小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点,这点和现实世界一致。

  • 分钟按通常方式由 0 至 59 的整数表示,这点和现实世界一致。

  • 秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

  • Date可是精确到毫秒,Date的元毫秒从1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

二、Date类常用方法

在java中,日期时间用java.util.Date来表示,调用默认构造器Data(),将会创建一个当前系统时间的Date对象,时间精确到毫秒。Date类常用方法是:

Date()

分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。

boolean after(Date when)

测试此日期是否在指定日期之后。

boolean before(Date when)

测试此日期是否在指定日期之前。

int compareTo(Date anotherDate)

比较两个日期的顺序。

其它的还有很多获得年月日时分秒的函数,但是这些方法都已经过期,这些方法都已经Calendar.get(...)方法替代了,当然虽然过期了,但是还是可以使用的。示例代码如下:

public class DateStu {
public static void main(String[] args) {
// 获得操作系统的当前时间
Date date = new Date();
Date date2=new Date(1997,6,7);
System.out.println(date.before(date2)); //如果date2大于date返回 1 等于返回 0 小于 -1
System.out.println(date2.compareTo(date));
//
System.out.println("年:" + (date.getYear()+1900) + ",月:" + (date.getMonth()+1)
+ ",日:" + date.getDate() + ",星期:" + date.getDay() + ",时:"
+ date.getHours() + ",分:" + date.getMinutes() + ",秒:"
+ date.getSeconds()); System.out.println("现在的毫秒:"+date.getTime()/1000); System.out.println(date.toString()); System.out.println(date.toLocaleString());//本地时间格式 } }

程序输出如下:

true

1

年:2014,月:2,日:20,星期:4,时:23,分:3,秒:5

现在的毫秒:1392908585

三、时间的格式化显示

各系统在显示时间的格式是不统一的,在中国一般采用英式日期,如“2013-02-02 17:30:24”的格式,而在美国时间的显示则为“月-日-年”的格式“02-02-2013 17:30:24”。要想格式化时间或者把字符串转换为Date类,可以使用java.text.Dateformat抽象类规定日期格式化的操作,具体常用的实现是java.text.SimpleDateformat类。

示例代码如下:

//1990年  9 月 4 日
//"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT
//HH 24 小时,hh 12小时
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd");
String dateFromt= sdf.format(date);//日期转换为字符串
System.out.println(dateFromt); //把字符串转换为日期
String inputdateFString="2013年09月8";
try {
Date inputDate=sdf.parse(inputdateFString);
System.out.println(inputDate);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

程序输出如下:

Thu Feb 20 23:03:05 CST 2014

2014-2-20 23:03:05

java中的Date类的更多相关文章

  1. JAVA中使用Date和SimpleDateFromat类表示时间

    转自:https://www.imooc.com/code/2335 仅做个人学习保存之用,侵删! 在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Dat ...

  2. java中基于TaskEngine类封装实现定时任务

    主要包括如下几个类: 文章标题:java中基于TaskEngine类封装实现定时任务 文章地址: http://blog.csdn.net/5iasp/article/details/10950529 ...

  3. java 中的常用类

    Java 中的包装类 相信各位小伙伴们对基本数据类型都非常熟悉,例如 int.float.double.boolean.char 等. 基本数据类型是不具备对象的特性的,比如基本类型不能调用方法.功能 ...

  4. Java中的BigDecimal类精度问题

    bigdecimal 能保证精度的原理是:BigDecimal的解决方案就是,不使用二进制,而是使用十进制(BigInteger)+小数点位置(scale)来表示小数,就是把所有的小数变成整数,记录小 ...

  5. java 中常用的类

    java 中常用的类 Math Math 类,包含用于执行基本数学运算的方法 常用API 取整 l  static double abs(double  a) 获取double 的绝对值 l  sta ...

  6. Java中的Date Time 与SQL Server 2005里的Datetime 之间的交互

    Preface Environment:Platform: Windows XPLanguage: Java 1.5IDE: MyEclipse 6.0.1Database: SQL Server 2 ...

  7. 23 在java中使用groovy类

    1       在java中使用groovy类 1.1  直接调用groovy类 在java中调用Groovy类,需要增加Groovy运行时到java的classpath中. pom.xml < ...

  8. java中的常用类(二)

    java中的常用类(二) Math类 Math类的声明:public final class Math extends Object Math类是与数学计算有关的类,里面的方法都是静态方法,直接使用类 ...

  9. 带有静态方法的类(java中的math类)

    带有静态方法的类通常(虽然不一定是这样)不打算被初始化. 可以用私有构造函数来限制非抽象类被初始化. 例如,java中的math类.它让构造函数标记为私有,所以你无法创建Math的实例.但Math类却 ...

随机推荐

  1. Python之虚拟环境

    场景:本地开发环境使用不同版本的包进行不同项目开发 总结:Linux通过配置环境变量来进行虚拟环境的切换,而Windows要通过虚拟环境目录下的Scripts的activate和deactivate进 ...

  2. c#执行sql超时

    超时分为多种,SqlConnection有超时选项, SqlDataAdapter也有超时选项设置如下: SqlConnection:就用链接字符串给予的Timeout设置就行单位秒: SqlData ...

  3. Redis内存模型(1):内存统计及划分

    1. 内存统计 查看命令:info memory 示例: 部分含义: used_memory: Redis分配器分配的内存总量(单位是字节),包括使用的虚拟内存. used_memory_rss: R ...

  4. Django框架(七)-- 模板层:模板导入、模板继承、静态文件

    一.模板导入 要复用一个组件,可以将该组件写在一个文件中,在使用的时候导入即可 在模板中使用 1.语法 {% include '模板名字' %} 2.使用 ad.html页面 <div clas ...

  5. HDU 1240 Asteroids! 题解

    Asteroids! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. 【JavaScript】JavaScript基本语法&知识点

    JavaScript: 是脚本语言:是一种解释性的语言(不需要编译) 作用: 让页面有具有动态效果 组成部分: ECMAScipt(核心),包含基本语法.变量.关键字.保留字.数据类型.语句.函数等 ...

  7. pymysql 增删改 查 索引

    pymysql 模块的使用 pip install pymysql username = input ("请输入用户") pwd = input ("请输入密码" ...

  8. 采坑复盘:logging日志能用封装后的函数来打日志,发现filename一直显示封装logging函数的方法所在的文件名

    问题: logging日志能用封装后的函数来打日志,发现filename一直显示封装logging函数的方法所在的文件名 原因: logging记录的是第一个函数执行所在的文件,那用封装的函数,首先执 ...

  9. opencart按重量配送如何设置

    OpenCart中基于重量的配送模块让你使用自己的价格折算表来决定配送价格.可以基于不同的重量允许设置价格范围,重量和价格的格式如下:weight(重量1):cost(价格1), weight(重量2 ...

  10. KITTI数据集

    目的 使用雷达点云提供的深度信息 如何实现 将雷达的三维点云投影到相机的二维图像上 kitti数据集简介 kitti的数据采集平台,配置有四个摄像机和一个激光雷达,四个摄像机中有两个灰度摄像机,两个彩 ...