引子:平时开发常常需要对时间进行格式化,进行比较,进行加减计算。最常用的类不外乎:SimpleDateFormat,Calendar,Date,DateTimeStamp等。下面想对java中的日期编程进行总结。

第一篇,介绍日期的比较

第二篇,介绍日期的格式化

第三篇,介绍关于日期常用的计算

第四篇,比较几个常用的日期时间相关类的区别

第五篇,jdk9对日期类进行了更新,写一些i自己的学习心得。

1.日期的比较。目前常用的是2种方法。Date里面的before(),after(),compareTo

 //日期的比较 两种方法: 第一种before/after  第2种:compareTo
/**
* 测试
* @param args
* @Description:
*/
@Test
public void testBeforeAndAfter(){
try {
String s1 = "2017-10-31 01:42:11";
String s2 = "2017-10-31 01:42:11";
SimpleDateFormat sdf = new SimpleDateFormat(DateHelper.DATETIME24_FORMAT1);
SimpleDateFormat sdf2 = new SimpleDateFormat(DateHelper.DATE_FORMAT);
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
if (d1.before(d2)) {
System.out.println("s1在s2前面");
}
if(d1.after(d2)) {
System.out.println("s1在s2后面");
}
System.out.println("s1,s2相等");
} catch (ParseException e) {
e.printStackTrace();
}
} /**
* 测试
* @param args
* @Description:
*/
@Test
public void testBeforeAndAfter2(){
try {
String s1 = "2017-10-31 01:42:11";
String s2 = "2017-10-32 01:42:12";
SimpleDateFormat sdf = new SimpleDateFormat(DateHelper.DATE_FORMAT);
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
if (d1.before(d2)) {
System.out.println("s1在s2前面");
}
if(d1.after(d2)) {
System.out.println("s1在s2后面");
}
System.out.println("s1,s2相等");
} catch (ParseException e) {
e.printStackTrace();
}
} /**
* 测试
* @param args
* @Description:
*/
@Test
public void testCompareTo(){
try {
String s1 = "2017-10-31 01:42:11";
String s2 = "2017-10-31 01:43:11";
SimpleDateFormat sdf = new SimpleDateFormat(DateHelper.DATETIME24_FORMAT1);
Date d1 = sdf.parse(s1);
Date d2 = sdf.parse(s2);
int result = d1.compareTo(d2);
switch (result) {
case 1:
System.out.println("s1在s2后面");
break;
case -1:
System.out.println("s1在s2前面");
break;
default:
System.out.println("s1,s2相等");
break;
}
} catch (ParseException e) {
e.printStackTrace();
} }

java编程--01介绍日期的比较的更多相关文章

  1. java编程--03介绍关于日期常用的计算

    /** * 获取2个日期之间的天数差 * d2-d1 * @return * @throws Exception * @Description: */ public static int getDif ...

  2. JAVA编程思想(第四版)学习笔记----4.8 switch(知识点已更新)

    switch语句和if-else语句不同,switch语句可以有多个可能的执行路径.在第四版java编程思想介绍switch语句的语法格式时写到: switch (integral-selector) ...

  3. Java编程的逻辑 (95) - Java 8的日期和时间API

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

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

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

  5. [Java并发编程(三)] Java volatile 关键字介绍

    [Java并发编程(三)] Java volatile 关键字介绍 摘要 Java volatile 关键字是用来标记 Java 变量,并表示变量 "存储于主内存中" .更准确的说 ...

  6. 编程入门-Java开发工具介绍及Eclipse安装

    编程入门-Java开发工具介绍及Eclipse安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Java开发工具介绍 "源代码"一般是文字,所以可以使用记 ...

  7. 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用

    085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...

  8. 084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字

    084 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 03 构造方法-this关键字 本文知识点:构造方法-this关键字 说明:因为时间紧 ...

  9. 083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法

    083 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 02 构造方法-带参构造方法 本文知识点:构造方法-带参构造方法 说明:因为时间紧张, ...

随机推荐

  1. 浅谈android代码保护技术_ 加固

    浅谈android代码保护技术_加固 导语 我们知道Android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服.虽然我们混淆,做到native层,但 ...

  2. 关于集合的小demo

    /*1.分析以下需求,并用代码实现: (1)有如下代码: (2)定义方法统计集合中指定元素出现的次数,如"e" 3,"f" 2,"g" 4* ...

  3. 自己写的Log记录组件

    常规的Debug组件的封装,然后加了一个文件log,分异步和同步(可跨平台使用). /// <summary> /// 常用IO操作类 /// </summary> publi ...

  4. javascript javascript加载类似星座、血型的函数

     javascript加载类似星座.血型的函数 //加载血型 function bloodtypelaod(constellation) { var obj = document.getElement ...

  5. NSPoint 位置

    前言 结构体,这个结构体用来表示事物的一个坐标点. typedef CGPoint NSPoint; struct CGPoint { CGFloat x; CGFloat y; }; typedef ...

  6. Use Vim as a Python IDE

    Use Vim as a Python IDE I love vim and often use it to write Python code. Here are some useful plugi ...

  7. oracle修改连接数

    使用 sqlplus登陆   sqlplus system 然后切换到sysdba模式   conn ?/ as sysdba   查询当前的processes sessions的大小   show ...

  8. jmeter-Http信息头管理器

    今天遇到的问题是:一个报名接口,用户先要登录后,再去报名.而登录页面:用户名.密码.动态图形验证码,所以不能直接使用jmeter参数传值方法. 测试的时候,需要先登录,获取ticket后,才能去请求下 ...

  9. 2019.2.14 考试T1 FFT

    \(\color{#0066ff}{ 题目描述 }\) 衡水二中的机房里经常有人莫名其妙地犇雷,leizi很生气,决定要找出那个犇雷的人 机房有n个人,每个人都认为机房里有两个人可能会犇雷,其中第i个 ...

  10. HackerRank - array-partition 并查集

    https://vjudge.net/contest/279745#problem/G 每次将质数的倍数放进一个集合中,那么如果最后的集合数为n的话: 方案数: 2^n -2 : #include&l ...