Java Date类的使用案例详解

Date类表示特定的瞬间,精确到毫秒。

有2种方法可以创建Date对象(这里不考虑已过时的构造函数)

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

@Test
public void test1() {
    Date date = new Date();
    System.out.println(date);
}

Sun Oct 23 22:39:14 CST 2016

2、public Date(long date)——根据给定的毫秒值创建日期对象。

@Test
public void test2() {
    long time = System.currentTimeMillis();
    Date date = new Date(time);
    System.out.println(date);
}

Sun Oct 23 22:41:42 CST 2016

介绍完了Date的构造函数后,接下来来看看日期与毫秒值的相互转换

1、public long getTime()——日期转毫秒值

通过getTime方法可以将一个日期类型转换为long类型的毫秒值

@Test
public void test3() {
    Date date = new Date();
    System.out.println(date.getTime());
}

1477234414353

2、public void setTime(long time)——毫秒值转日期

@Test
public void test4() {
    long time = System.currentTimeMillis();
    Date date = new Date();
    date.setTime(time);
    System.out.println(date);
}

Sun Oct 23 22:53:05 CST 2016

当然也可以通过构造函数public Date(long date)将毫秒值转为日期类型。

通常我们会比较2个日期的大小,Date类提供以下方法用来比较2个日期的相关操作

1、public boolean before(Date when)——测试此日期是否在指定日期之前,当且仅当此Date对象表示的瞬间比when表示的瞬间早,才返回true;否则返回false。

@Test
public void test5() {
    Date date1 = new Date(1000);
    Date date2 = new Date(2000);
    System.out.println(date1.before(date2));
}

true

2、public boolean after(Date when)——测试此日期是否在指定日期之后,当且仅当此Date对象表示的瞬间比when表示的瞬间晚,才返回true;否则返回false。

@Test
public void test6() {
    Date date1 = new Date(1000);
    Date date2 = new Date(2000);
    System.out.println(date1.after(date2));
}

false

3、public int compareTo(Date anotherDate)——比较两个日期的顺序。

如果参数Date等于此Date,则返回值0;如果此Date在Date参数之前,则返回小于0的值;如果此Date在Date参数之后,则返回大于0的值。

@Test
public void test7() {
    Date date1 = new Date(1000);
    Date date2 = new Date(2000);
    System.out.println(date1.compareTo(date2));
}

-1

到此这篇关于Java Date类的使用案例详解的文章就介绍到这了,更多相关Java Date类的使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java的SimpleDateFormat线程不安全的几种解决方案

    目录 场景 SimpleDateFormat线程为什么是线程不安全的呢? 验证SimpleDateFormat线程不安全 解决方案 解决方案1:不要定义为static变量,使用局部变量 解决方案2:加锁:synchronized锁和Lock锁 加synchronized锁 加Lock锁 解决方案3:使用ThreadLocal方式 解决方案4:使用DateTimeFormatter代替SimpleDateFormat 解决方案5:使用FastDateFormat 替换SimpleDateForma

  • 解决java字符串转换成时间Unparseable date出错的问题

    今天在写代码的时候,在将字符串转换成时间的时候,出现了这样的问题. java.text.ParseException: Unparseable date: "2017-1-1 00:00:00" DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date start = df.parse(startTime); Date stop = df.parse(stopTime); long timeSpan = sto

  • 解决Java中SimpleDateFormat线程不安全的五种方案

    目录 1.什么是线程不安全? 线程不安全的代码 2.解决方案 ① 将SimpleDateFormat变为局部变量 ② 使用synchronized加锁 ③ 使用Lock加锁 ④ 使用ThreadLocal ⑤ 使用DateTimeFormatter 3.线程不安全原因分析 4.各方案优缺点总结 1.什么是线程不安全? 线程不安全也叫非线程安全,是指多线程执行中,程序的执行结果和预期的结果不符的情况就叫做线程不安全. 线程不安全的代码 SimpleDateFormat 就是一个典型的线程不安全事例

  • Java8时间接口LocalDateTime详细用法

    一.新时间日期API常用.重要对象介绍 ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则 Instant: 用来表示时间线上的一个点(瞬时) LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的 LocalTime: 表示没有时区的时间, LocalTime是不可变并且线程安全的 LocalDateTime: 表示没有时区的日期时间, LocalDateTime是不可变并且线程安全的 Clock: 用于访问当前时刻.日期.

  • Java黑盒测试之nextDate函数测试

    一.实验目的 (1)掌握应用黑盒测试技术进行测试用例设计. (2)掌握对测试用例进行优化设计方法. 二.实验内容 日期问题 测试以下程序:该程序有三个输入变量month.day.year(month.day和year均为整数值,并且满足:1≤month≤12.1≤day≤31和1900≤year≤2050),分别作为输入日期的月份.日.年份,通过程序可以输出该输入日期在日历上隔一天的日期.例如,输入为2004 年11月30日,则该程序的输出为2004年12月1日. (1)划分等价类,按照等价类划

  • SpringMVC接收java.util.Date类型数据的2种方式小结

    SpringMVC接收java.util.Date类型数据 在Controller中如下定义方法 public PassQueryRequest trade(@ModelAttribute PassQueryRequest tradeRequest, @RequestParam(value="startDate", required=true)Date startDate, @RequestParam(value="endDate", required=true)D

  • 深入了解Java核心类库--Date,Calendar,DateFormat类

    目录 一.Date 1.1 构造方法 1.1.1 Date() 1.1.2 Date(long date) 1.2 常用方法 1.3 其他方法 二.Calendar(抽象) 2.1 获取时间 get() 2.2 设置时间 2.3 时间计算 2.4 其它方法 三.DateFormat(抽象) 3.1 构造方法 总结 一.Date Date类表示特定的时刻,精度为毫秒 Date的两个附加功能:Calendar.DateFormat Calendar类应该用于在日期和时间字段之间进行转换 DateFo

  • Java Date类的使用案例详解

    Date类表示特定的瞬间,精确到毫秒. 有2种方法可以创建Date对象(这里不考虑已过时的构造函数) 1.public Date()--分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒). @Test public void test1() { Date date = new Date(); System.out.println(date); } Sun Oct 23 22:39:14 CST 2016 2.public Date(long date)--根据给定的毫秒值创建日

  • Java 处理高并发负载类优化方法案例详解

    java处理高并发高负载类网站中数据库的设计方法(java教程,java处理大量数据,java高负载数据) 一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF.尤其是Web2.0的应用,数据库的响应是首先要解决的. 一般来说MySQL是最常用的,可能最初是一个mysql主机,当数据增加到100万以上,那么,MySQL的效能急剧下降.常用的优化措施是M-S(主-从)方式进行同步复制,将查询和操作和分别在不同的服务器上进行操作.我推荐的是M-M-Slaves

  • Java之Spring注解开发案例详解

    在Spring4之后,要使用注解开发,必须要保证aop的包导入了 使用注解需要导入context约束,增加注解的支持! <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&

  • Java System.getProperty()-获取系统参数案例详解

    因为所有在java.io中的类都是将相对路径名解释为起始于用户的当前工作目录,所以应该清楚当前的目录. 可以通过调用System.getProperty("user.dir"); 来获得. /** * java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.vm.specification.version Java 虚拟机规范版本 java.vm.specificati

  • Java jvm中Code Cache案例详解

    Code Cache JVM生成的native code存放的内存空间称之为Code Cache:JIT编译.JNI等都会编译代码到native code,其中JIT生成的native code占用了Code Cache的绝大部分空间 相关参数 Codecache Size Options -XX:InitialCodeCacheSize 用于设置初始CodeCache大小 -XX:ReservedCodeCacheSize 用于设置Reserved code cache的最大大小,通常默认是2

  • java之assert关键字用法案例详解

    Java2在1.4中新增了一个关键字:assert.在程序开发过程中使用它创建一个断言(assertion).,它的语法形式有如下所示的两种形式: 1.assert condition; 这里condition是一个必须为真(true)的表达式.如果表达式的结果为true,那么断言为真,并且无任何行动 如果表达式为false,则断言失败,则会抛出一个AssertionError对象.这个AssertionError继承于Error对象, 而Error继承于Throwable,Error是和Exc

  • java 异常捕获及处理案例详解

    目录 一.Java异常简介 二.Java异常的分类 三.异常的使用及执行流程 四.自定义异常 一.Java异常简介 什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止.在Java中即,Java在编译或运行或者运行过程中出现的错误. Java提供了更加优秀的解决办法:异常处理机制. 异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持

  • Java Spring之@Async原理案例详解

    目录 前言 一.如何使用@Async 二.源码解读 总结 前言 用过Spring的人多多少少也都用过@Async注解,至于作用嘛,看注解名,大概能猜出来,就是在方法执行的时候进行异步执行. 一.如何使用@Async 使用@Async注解主要分两步: 1.在配置类上添加@EnableAsync注解 @ComponentScan(value = "com.wang") @Configuration @EnableAsync public class AppConfig { } 2.在想要异

  • Java之Class.forName()用法案例详解

    Class.forName()主要功能 Class.forName(xxx.xx.xx)返回的是一个类, Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段. 下面,通过解答以下三个问题的来详细讲解下Class.forName()的用法. 一.什么时候用Class.forName()? 给你一个字符串变量,它代表一个类的包名和类名,你怎么实例化它?你第一想到的肯定是new,但是注意一点: A a = (A)Class.for

  • Java Spring AOP之PointCut案例详解

    目录 一.PointCut接口 二.ClassFilter接口 三.MethodMatcher接口 总结 一.PointCut接口 /* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with

随机推荐