Java工具类(18)—时间格式化工具类_java时间格式化工具类-程序员宅基地

技术标签: java  java工具类  

Java工具类(18)—时间格式化工具类

时间格式化工具,一秒前,一分钟前,一小时前,昨天,一天前

package com.awifi.cloudnative.container.rbac.user.provider.utils;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
* @Author 张鑫
* @Date 2022/4/20
* @Param 
* @return 
**/
public class dataFormatUtils {
     
   
   
   /**
    * 时间格式化
    *
    * @param date
    * @return
    */
   public static String format(Date date) {
     
       // 计算出相差天数
       int days = differentDays(date, new Date());
       // 同一天
       if (0 == days) {
     
           // 计算出时间差
           long delta = new Date().getTime() - date.getTime();
           // 小于一分钟
           if (delta < 1L * 60000L) {
     
               long seconds = toSeconds(delta);
               return (seconds <= 0 ? 1 : seconds) + "秒前";
           }
           // 小于一小时
           else if (delta < 1L * 3600000L) {
     
               long minutes = toMinutes(delta);
               return (minutes <= 0 ? 1 : minutes) + "分钟前";
           }
           // 小于24小时
           else if (delta < 24L * 3600000L) {
     
               long hours = toHours(delta);
               return (hours <= 0 ? 1 : hours) + "小时前";
           }
       }
       // 不同一天
       else {
     
           if (1 == days) {
     
               return "昨天";
           }
           // 几天前
           else if (3 >= days) {
     
               return days + "天前";
           }
       }
       // 格式化时间
       return getYmdHm(date);
   }

   /**
    * 获取秒
    *
    * @param date
    * @return
    */
   private static long toSeconds(long date) {
     
       return date / 1000L;
   }

   /**
    * 获取分钟
    *
    * @param date
    * @return
    */
   private static long toMinutes(long date) {
     
       return toSeconds(date) / 60L;
   }

   /**
    * 获取小时
    *
    * @param date
    * @return
    */
   private static long toHours(long date) {
     
       return toMinutes(date) / 60L;
   }

   /**
    * 时间格式化,yyyy-MM-dd HH:mm
    */
   public static String getYmdHm(Date date) {
     
       DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm");
       return df.format(date);
   }

   /**
    * 获取天数
    *
    * @param oldDate
    * @param newDate
    * @return
    */
   public static int differentDays(Date oldDate, Date newDate) {
     
       Calendar oldCal = Calendar.getInstance();
       oldCal.setTime(oldDate);

       Calendar newCal = Calendar.getInstance();
       newCal.setTime(newDate);
       int oldDay = oldCal.get(Calendar.DAY_OF_YEAR);
       int newDay = newCal.get(Calendar.DAY_OF_YEAR);

       int oldYear = oldCal.get(Calendar.YEAR);
       int newYear = newCal.get(Calendar.YEAR);
       // 不是同一年
       if (oldYear != newYear) {
     
           int timeDistance = 0;
           for (int i = oldYear; i < newYear; i++) {
     
               //如果是闰年
               if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
     
                   timeDistance += 366;
               }
               //不是闰年
               else {
     
                   timeDistance += 365;
               }
           }
           return timeDistance + (newDay - oldDay);
       }
       // 是同一年
       else {
     
           return newDay - oldDay;
       }
   }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43410878/article/details/124289880

智能推荐

Go: go get 获取第三方库【国内gopm】_go get github-程序员宅基地

文章浏览阅读4.1k次。因为网络问题,常常拉不下来(github上的一般能拿下来),所以用国内的一个工具来获取第三方库.gopm:https://gopm.io/1. 拿 github上的包:(前提是安装git)go get -u github.com/gpmgo/gopm稍微等一会儿,然后就可以看到它为我做了几件事:在GOPATH下生成了E:\GoProjects\src\gi..._go get github

一文读懂“大语言模型”_大语言模型相关ppt-程序员宅基地

文章浏览阅读1.2w次,点赞45次,收藏262次。深度学习是机器学习的分支,大语言模型是深度学习的分支。机器学习是人工智能(AI)的一个子领域,它的核心是让计算机系统能够通过对数据的学习来提高性能。在机器学习中,我们不是直接编程告诉计算机如何完成任务,而是提供大量的数据,让机器通过数据找出隐藏的模式或规律,然后用这些规律来预测新的、未知的数据。深度学习是机器学习的一个子领域,它尝试模拟人脑的工作方式,创建所谓的人工神经网络来处理数据。这些神经网络包含多个处理层,因此被称为“深度”学习。_大语言模型相关ppt

python 安装 .whl 文件(仅提供解决办法)_cryptography-42.0.5-cp37-abi3-win_amd64.whl-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏8次。python 安装.whl文件(针对No module named "xxxx.pep425tags"问题)_cryptography-42.0.5-cp37-abi3-win_amd64.whl

Java Spring Cloud Alibaba-Nacos 注册中心:(六)Nacos Discovery 对外暴露的 Endpoint_nacos discovery endpoint-程序员宅基地

文章浏览阅读3.6k次。Nacos Discovery 对外暴露的 Endpoint1.给项目添加依赖2.修改配置文件3.查询效果Nacos Discovery 内部提供了一个 Endpoint, 对应的 endpoint id 为 nacos-discovery。我们通过该 Endpoint,能获取到:当前服务有哪些服务订阅者 ;当前应用 Nacos 的基础配置信息 ;1.给项目添加依赖假设我们想看服务提供者(provider)有那些订阅者,以及 Nacos 的基础配置信息。我们就需要给 provider 项目_nacos discovery endpoint

java Compiler API (java编译api)-程序员宅基地

文章浏览阅读1.3w次,点赞20次,收藏53次。在早期的版本中(Java SE5及以前版本)中只能通过tools.jar中的com.sun.tools.javac包来调用Java编译器,但由于tools.jar不是标准的Java库,在使用时必须要设置这个jar的路径。而在Java SE6中为我们提供了标准的包来操作Java编译器,这就是javax.tools包。编译java文件使用Java API来编译Java源代码有非常多方法,目前让..._java compiler api

matlab绘制球面模型_MATLAB采用surf/surfc/surfl/surfnorm绘制球体-程序员宅基地

文章浏览阅读2.1k次。利用绘制球体sphere(n),展示了MATLAB中的surf,surfc,surfl,surfnorm,surface五个绘图命令。启动MATLAB,新建脚本(Ctrl+N),输入如下代码:close all; clear all; clcn=20;[x,y,z]=sphere(n);figure(1);surf(x,y,z);axis equalfigure(2);surfc(x,y,z);a..._利用sphere(n)产生绘制球面数据,其中的n取值为学号后两位(若后两位小于等于5,需要

随便推点

NoSQL注入基础及思路_nosql sql注入-程序员宅基地

文章浏览阅读1.2k次,点赞23次,收藏26次。本篇介绍了NoSQL注入的基础以及思路,详细内容包含了、NoSQL1、为什么使用NoSQL2、RDBMS与NoSQL区别3、NoSQL产品4、NoSQL 数据库分类-、MongoDB1、认识MongoDB2、MongoDB特性3、MongoDB工作方式4、MongoDB缺陷5、MongoDB基本概念数据库Database7、文档Document8、集合Collection三、MongoDB基本操作1、数据库操作2、集合操作3、文档操作4、Where语句比较四、Mon等内容_nosql sql注入

2023年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析_我国第一台大型通用电子计算机使用的逻辑部件是( ) 。-程序员宅基地

文章浏览阅读124次。我国第一台大型通用电子计算机使用的逻辑部件是( )。A:集成电路B:大规模集成电路C:晶体管D:电子管。_我国第一台大型通用电子计算机使用的逻辑部件是( ) 。

tp文件上传到服务器,tp文件上传到远程服务器-程序员宅基地

文章浏览阅读399次。tp文件上传到远程服务器 内容精选换一换为加强对系统数据的容灾管理,云堡垒机支持配置日志备份,提高审计数据安全性和系统可扩展性。本小节主要介绍如何在系统配置FTP/SFTP服务器参数,将日志远程备份至FTP/SFTP服务器。开启远程备份后,系统默认在每天零点备份前一天的系统数据。以天为单位自动备份,生成日志文件,并上传到FTP/SFTP服务器相应路径。服务器同一路径下,不能重复以昇腾模型压缩工具的..._tp6上传远程服务器

解题报告 (十三) 尺取法_尺取法课后作业 答 题 卡 上 一 题 下 一 题 2. k13629 字符计数 题目描述 给定一-程序员宅基地

文章浏览阅读2.8w次,点赞2次,收藏7次。解题报告 破折号 最简单的算法_尺取法课后作业 答 题 卡 上 一 题 下 一 题 2. k13629 字符计数 题目描述 给定一

北京理工大学计算机学院张教授,张子剑_北京理工大学计算机学院-程序员宅基地

文章浏览阅读490次。代表性学术成果1.Yiwei Liu, Jiamou Liu, Zijian Zhang, Liehuang Zhu, Ansheng Li. REM: From Structural Entropy To Community Structure Deception. NeurIPS 2019, Accepted, Vancouver, Canada.2.Liehuang Zhu, Meng ..._rem: from structural entropy to community structure deception

人工智能城市和智慧城市_智慧城市:人工智能在城市管理中的应用-程序员宅基地

文章浏览阅读4.9k次。人工智能城市和智慧城市Smart cities aren’t just sci-fi or cyberpunk dreams, but an actual solution based on Artificial Intelligence and the Internet of Things. But the question is, what is the mechanism that put ..._intelligent edge computing based on machine learning for smart city