一.时间工具类DateUtils之"获取相差天数"

 1 /**
2 * 相差天数
3 *
4 * <p>TODO 方法功能描述
5 *
6 * @param startDate 开始时间
7 * @param endDate 结束时间
8 * @return
9 * long
10 */
11 public static long numberOfDay(Timestamp startDate, Timestamp endDate)
12 {
13
14 long days = 0;
15
16 if (startDate == null)
17 {
18 return days;
19 }
20
21 if (endDate == null)
22 {
23 Calendar a = Calendar.getInstance();
24
25 endDate = new Timestamp(a.getTimeInMillis());
26 }
27
28 try
29 {
30 long between = (endDate.getTime() - startDate.getTime()) / 1000;// 除以1000是为了转换成秒
31
32 days = between / (24 * 60 * 60);
33 }
34 catch (Exception e)
35 {
36
37 }
38
39 return days;
40 }

案例

 1    @Test
2 public void test()
3 {
4 // 初始开始时间:2021-3-9
5 Calendar calendar = Calendar.getInstance();
6 calendar.set(2021,2,9);
7 long millis = calendar.getTimeInMillis();
8 Timestamp timestamp1 = new Timestamp(millis); // timestamp1 = 2021-03-09 09:55:04.821
9
10 // 初始结束时间:当前时间2021-3-10
11 Timestamp timestamp2 = new Timestamp(System.currentTimeMillis()); // timestamp2 = 2021-03-10 09:55:04.826
12
13 // 使用工具类进行比较
14 long completeDiffDays = DateUtils.numberOfDay(timestamp1,timestamp2); // completeDiffDays = 1
15
16 // 5个月内完成的SKU不计算
17 if (completeDiffDays <= 150)
18 {
19 // 库存为0
20 int normalStock = 0;
21 System.out.println("normalStock = " + normalStock); // normalStock = 0
22 }
23 }

二.技术解析:new Timestamp(毫秒值);  时间格式化工具

创建Timestamp的几种方式

 1     @Test
2 public void wzwtest(){
3 // 以下三种都是获取当前格式,只是时间戳的声明方式不一样
4 // 获取当前时间格式(时间戳),保留秒后面3为数
5 Timestamp time1 = new Timestamp(System.currentTimeMillis()); // 2021-03-10 09:31:52.528
6
7 Timestamp time2 = new Timestamp(new Date().getTime()); // 2021-03-10 09:31:52.528
8
9 Timestamp time3 = new Timestamp(Calendar.getInstance().getTimeInMillis()); // 2021-03-10 09:31:52.528
10
11 //不建议使用:获取去指定时间 2011-12-11 11:11:11.0
12 Timestamp time4 = new Timestamp(2011-1900,11,11,11,11,11,0);
13 }

三.补充:获取指定时间戳,可以参考以下案例或我写的博客

1.Calendar类

先由getInstance获取Calendar对象,然后用clear方法将时间重置为(1970.1.1 00:00:00),接下来用set方法设定指定时间,最后用getTimeMillis获取毫秒值。

 1    @Test
2 public void wzwtest(){
3 // 创建Calendar对象
4 Calendar calendar = Calendar.getInstance();
5 // 清除原有数据
6 calendar.clear();
7 // 设置要转换的时间,注意月份,外国是从0开始的
8 calendar.set(2021,2,15);
9 // 获取2021年3月15号的时间戳
10 long millis = calendar.getTimeInMillis();
11 // 格式时间戳
12 Timestamp timestamp1 = new Timestamp(millis);
13
14 System.out.println("timestamp1 = " + timestamp1); //timestamp1 = 2021-03-15 00:00:00.0
15 System.out.println("millis = " + millis); // millis = 1615737600000
16 }

2.DateFormat类,利用SimpleDateFormat解决系统时间初始(格式化/解析)问路径题

路径:https://www.cnblogs.com/saoge/p/13567215.html

时间工具类之"获取相差天数"的更多相关文章

  1. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

  2. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,

    Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在Java 8 ...

  3. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  4. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  5. Apache Commons Lang之日期时间工具类

    码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...

  6. jdk1.8 时间工具类,可以满足基本操作

    时间工具类 public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd"; public static final S ...

  7. 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...

  8. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  9. 基于Java8的日期时间工具类DateTimeFormatter

    原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...

随机推荐

  1. Thread、ThreadPool 和 Task

    对 C# 开发者来说,不可不理解清楚 Thread.ThreadPool 和 Task 这三个概念.这也是面试频率很高的话题,在 StackOverflow 可以找到有很多不错的回答,我总结整理了一下 ...

  2. spring 使用depends-on, lazy-init, defalut-lazy-init

    depends-on 如果一个bean是另一个bean的依赖, 可以使用ref属性或者<ref/>标签来实现依赖 那么被依赖bean一定是要比依赖bean率先实例化, 而depends-o ...

  3. GAN实战笔记——第六章渐进式增长生成对抗网络(PGGAN)

    渐进式增长生成对抗网络(PGGAN) 使用 TensorFlow和 TensorFlow Hub( TFHUB)构建渐进式增长生成对抗网络( Progressive GAN, PGGAN或 PROGA ...

  4. MongoDB数据库的下载安装及配置方法

    MongoDB安装与配置步骤 MongoDB数据库之安装篇 # 1 下载MongoDB数据库 1.打开浏览器,登录"https://www.mongodb.com/try/download/ ...

  5. dvwa-暴力破解(low-high)

    靶场环境 phpstudy8.1.1.3 Apache2.4.39 FTP0.9.60 MySQL5.7.26 Burpsuite v2.1 LOW 首先看一下源码: 这里没有任何限制,可以使用万能破 ...

  6. ln -s 软链接知识总结

    ln -s 软链接知识总结 1.软连建立:ln  -s  源文件 软链接文件 2.误区:软链接是创建的,就意味着软链接文件不可以在创建之前存在 3.类比:win快捷方式 4.删除:rm就可以,但源文件 ...

  7. 05tensorflow分布式会话

    一. tensorflow分布式 1.     概念 分布式Tensorflow是由高性能的gRPC框架作为底层技术来支持的.这是一个通信框架gRPC(google remote procedure ...

  8. python 装饰器的使用

    装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.它经常用于有切面需求的场景,比如:插入日志.性能测试.事务处理.缓存.权 ...

  9. ASP.NET Core 6框架揭秘实例演示[26]:跟踪应用接收的每一次请求

    很多人可能对ASP.NET Core框架自身记录的诊断日志并不关心,其实这些日志对纠错排错和性能监控提供了很有用的信息.如果需要创建一个APM(Application Performance Mana ...

  10. 给R语言RStudio添加阿里云镜像源

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 方法一: 打开RStudio,输入options()$repos查看默认镜像源情况 options()$repos 打开tools工具栏,找到Glo ...