Java 日期和时间

学习自

http://blog.csdn.net/zjf280441589/article/details/50447533

Date类

Date 类是在JDK 1.0 的时候提供的,到现在可以说是历史非常悠久了,其中有很多方法都已经弃用。

构造函数
//这样new出来的代表的是当前的时间
Date date = new Date();
//1970-1-1 00:00:00以来经过的毫秒数)来生成Date对象.
Date date = new Date(long date);
常用方法
/**
* 获取当前的系统时间
*/
private void getSystemTime() {
Date date = new Date(1000);
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time = format.format(date);
System.out.println(time);
} /**
* 判断date是否在一个date之后
*/
private void after() {
Date date = new Date();
Date checkDate = new Date(System.currentTimeMillis() + 1000);
System.out.println(date.after(checkDate));
} /**
* 判断date是否在一个date之前
*/
private void before() {
Date date = new Date();
Date checkDate = new Date(System.currentTimeMillis() + 1000);
System.out.println(date.before(checkDate));
}

Calendar

因为Calendar有很多的缺陷,并且也比较老旧,JDK又提供了java.util.Calendar 类,Calendar类是一个抽象类,没有具体实现,他是一个所有日历的模板。

获取Calendar实例
//获取公历日历
Calendar calendar = Calendar.getInstance();
常用方法
//可以进行时间的加减
calendar.add(Calendar.DAY_OF_YEAR, 1);
//获取不同的时间的值
int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR);
将字符串转化为时间
/**
* 將字符串转化为时间
*/
private void convertStringToDate() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//被转换的时间的格式必须要与DateFormat解析的时间格式相同
String strDate = "2018-9-19 08:11:11";
try {
Date date = dateFormat.parse(strDate);
String value = dateFormat.format(date);
System.out.println(value);
} catch (ParseException e) {
e.printStackTrace();
}
}

计算两个时间之间的差值

通过获取总的毫秒数,然后进行换算

/**
* 计算两个时间之间的差值
*/
private void getTimeSpan() {
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
Date dateFirst = dateFormat.parse("2018-10-11 09:11:11");
Date dateSecond = dateFormat.parse("2018-10-10 07:11:10");
long diff = dateSecond.getTime() - dateFirst.getTime();
diff = diff / 1000;
//
long second = diff % 60;
long minute = diff % 3600 / 60;
long hour = diff % (3600 * 24) / 3600;
long day = diff / (3600 * 24);
String value =
String.format("%S 与 %S 之间相差了 %d days %d hours %d minutes %d second",
dateFormat.format(dateSecond),
dateFormat.format(dateFirst),
day, hour,
minute,
second);
System.out.println(value);
//2018-10-10 07:11:10 与 2018-10-11 09:11:11 之间相差了 -1 days -2 hours 0 minutes -1 second
} catch (Exception e) {
e.printStackTrace();
}
}

Java日期和时间的更多相关文章

  1. Java 日期与时间

    章节 Java 基础 Java 简介 Java 环境搭建 Java 基本语法 Java 注释 Java 变量 Java 数据类型 Java 字符串 Java 类型转换 Java 运算符 Java 字符 ...

  2. [Java]Java日期及时间库插件 -- Joda Time.

    来到新公司工作也有一个多月了, 陆陆续续做了一些简单的项目. 今天做一个新东西的时候发现了 Joda Time的这个东西, 因为以前用的都是JDK原生的时间处理API, 大家都知道Java原生的时间处 ...

  3. java 日期与时间操作

    我们先来了解一下基本的概念 日期 2020-11-21 2020-11-22 时间 15:36:43 2020-11-21 15:36:43 时区 北京时间 2020-11-21 15:36:43 东 ...

  4. java日期和时间转换字符

    日期和时间转换字符 字符 描述 例子 c 完整的日期和时间 Mon May 04 09:51:52 CDT 2009 F ISO 8601 格式日期 2004-02-09 D U.S. 格式日期 (月 ...

  5. Java日期与时间的处理/Date,String,Calendar转换

    public class Demo01 { //Java中Date类和Calendar简介 public static void main(String[] args) { long now=Syst ...

  6. java日期和时间Date、Calendar、SimpleDateFormat

    1       时间和日期 1.1      日期类Date和格式化SimpleDateFormat 日期使用过程中需要将日期Date对象转化为字符串,或者将字符串形式的日期转化为日期Date对象.可 ...

  7. java 日期与时间类

    1.Date类:  https://www.cnblogs.com/huangminwen/p/5994927.html 2.DateFormat和SimpleDateFormat (simple简单 ...

  8. java 日期。时间

    友情链接: https://www.cnblogs.com/wanson/articles/10818955.html

  9. Java编程的逻辑 (32) - 剖析日期和时间

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

随机推荐

  1. git开发部署流程

    git的分支操作 https://blog.csdn.net/QH_JAVA/article/details/77853605 Git 开发部署流程 采用业界成熟方案 Git Flow 分支方式进行开 ...

  2. CentOS6.7定制化制作ISO

    CentOS6.7定制化制作ISO 以CentOS 6.7-minimal为例. 欢迎大家转载,并保留原文出处.内容若有错误或补充,请联系:szyzln@126.com 本文主要讲解如何在已有官方Ce ...

  3. Scala进阶之路-高级数据类型之数组的使用

    Scala进阶之路-高级数据类型之数组的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数组的初始化方式 1>.长度不可变数组Array 注意:顾名思义,长度不可变数 ...

  4. Hadoop源码阅读-HDFS-day1

    HDFS声明及构造函数 @InterfaceAudience.Private @InterfaceStability.Evolving public class Hdfs extends Abstra ...

  5. ThinkPHP框架学习(二)

    在上一节中,我主要讲到了如何获取ThinkPHP框架,以及虚拟目录和虚拟主机的配置.准备工作完成之后,就可以利用ThinkPHP去部署项目了. 先在工作目录(D:/zend/workspace)下新建 ...

  6. 如何使用 grunt

    1>. 首先要有nodejs环境, 至少0.8.0版本: 2>. 转到 项目文件夹下: >npm install –g grunt-cli >npm init #生成一个基本的 ...

  7. Angular 下的 directive (part 1)

    directive  指令 Directive components  指令部分   使用指令自动引导一个AngularJS应用.ngApp指令指定应用程序的根元素,通常是放在页面的根元素如: < ...

  8. 五个案例让你明白GCD死锁(转)

    转自:http://ios.jobbole.com/82622/ 死锁一直都是在使用多线程时,需要注意的一个问题.以前对同步.异步,串行.并行只有一个模糊的概念,想想也是时候整理一下了.再看看之前的博 ...

  9. unbind()清除指定元素绑定效果

    定义和用法 unbind() 方法移除被选元素的事件处理程序. 该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行. ubind() 适用于任何通过 jQuery 附加的事件 ...

  10. 用原生js对表格排序

    阿里的模拟笔试题,当时时间有限没写出来,其实是因为自己对原生dom操作不熟悉,这里补一下. 题目的大意是有一个表格,如代码所示 <table> <tr> <th>N ...