下面这些方法都可以封装到一个工具类中

  /**
* 获取当前时间的时间戳
*/
public static int getCurrentTimeIntValue() {
return (int) (System.currentTimeMillis() / 1000);
} /**
* 获取days天后的当前时间 时间戳
*/
public static int addDaysTimeStamp(int days) {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DATE, days);
return (int) (cal.getTimeInMillis() / 1000);
} /**
* 获取今日零点的时间戳
*/
public static int getStartTimeStamp() {
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
long time = todayStart.getTimeInMillis()/1000;
return (int)time;
} /**
* 获取今日23:59:59的时间戳
*/
public static int getEndTimeStamp() {
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
long time = todayEnd.getTimeInMillis() / 1000;
return (int) time;
} /**
* 获取指定时间零点的时间戳
*/
public static int getStartTimeStamp(Date date) {
Calendar todayStart = Calendar.getInstance();
todayStart.setTime(date);
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
long time = todayStart.getTimeInMillis()/1000;
return (int)time;
} /**
* 获取指定时间23:59:59的时间戳
*/
public static int getEndTimeStamp(Date date) {
Calendar todayEnd = Calendar.getInstance();
todayEnd.setTime(date);
todayEnd.set(Calendar.HOUR_OF_DAY, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
long time = todayEnd.getTimeInMillis() / 1000;
return (int) time;
} /**
* 获取昨天零点的时间(字符串)
*/
public static String getYesterDayStartTimeStamp() {
SimpleDateFormat sdfYMD = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND,0); //这是将【秒】设置为0
calendar.set(Calendar.MINUTE,0); //这是将【分】设置为0
calendar.set(Calendar.HOUR_OF_DAY,0); //这是将【时】设置为0
calendar.add(Calendar.DATE,-1); //当前日期加一
String yesterday = sdfYMD.format(calendar.getTime()); //获取昨天的时间 如2021-02-25 00:00:00
return yesterday;
} /**
* 获取昨天零点的时间戳
*/
public static Integer getBeforeStartTime(){
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
long time = todayStart.getTimeInMillis()/1000;
return (int)time-86400;
} /**
* 获取昨天23:59:59的时间(字符串)
*/
public static String getYesterDayEndTimeStamp() {
SimpleDateFormat sdfYMD = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND,59); //这是将当天的【秒】设置为0
calendar.set(Calendar.MINUTE,59); //这是将当天的【分】设置为0
calendar.set(Calendar.HOUR_OF_DAY,23); //这是将当天的【时】设置为0
calendar.add(Calendar.DATE,-1); //当前日期加一
String yesterday = sdfYMD.format(calendar.getTime()); //获取第二天的时间 2021-02-25 00:00:00
return yesterday;
} /**
* 获取明天零点的时间戳
*/
public static Integer getAfterStartime()
{
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
long time = todayStart.getTimeInMillis()/1000;
return (int)time+86400;
} /**
* 将昨天凌晨时间转换为Date类型(下面设置成这样 new simpleDateFormat("yyyy-MM-dd HH:mm:ss") 数据中对应的字段类型就是DateTime)
   * 这个方法中调用了上面的getYesterDayStartTimeStamp()方法哦
*/
public static Date getDateTime()
{
Date dateTime = null;
String yesterDayStartTimeStamp = DateUtil.getYesterDayStartTimeStamp();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
dateTime = formatter.parse(yesterDayStartTimeStamp);
}
catch (ParseException e)
{
e.printStackTrace();
}
//Sun May 09 00:00:00 CST 2021
return dateTime;
}
   /**
* @param begin 开始时间
* @param end 结束时间
* 获取begin - end 时间段内的每一天的日期 比如获取 2021-4-15到2021-5-10内每一天的日期
*/
public static List<String> getDayBetweenDates(String begin, String end) throws ParseException
{
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd");
Date dBegin = sd.parse(begin); //将字符串参数转为Date类型 比如参数为 "2021-4-14" 将其转为Date类型
Date dEnd = sd.parse(end);
List<String> lDate = new ArrayList<>(); //创建集合, 存储begin - end 时间段内的时间
lDate.add(sd.format(dBegin));
Calendar calBegin = Calendar.getInstance();
calBegin.setTime(dBegin);
Calendar calEnd = Calendar.getInstance();
calEnd.setTime(dEnd);
while (dEnd.after(calBegin.getTime()))
{
calBegin.add(Calendar.DAY_OF_MONTH, 1);
lDate.add(sd.format(calBegin.getTime()));
}
return lDate;
}

Java中时间方法大全01(持续更新)的更多相关文章

  1. Java中的static(1)【持续更新】——关于Eclipse的No enclosing instance of type ... 错误的理解和改正

    No enclosing instance of type SomeClass is accessible. Must qualify the allocation with an enclosing ...

  2. 侠客群控引擎二次开发SDK可用方法大全(持续更新)

    如这篇文章所示 http://www.xiake.net/blog/archives/1 侠客的插件SDK能提供很强大的功能(所有官方使用的方法都有提供) 这篇文章是详细介绍所有SDK可调用的方法 首 ...

  3. Java获取各种常用时间方法大全

    Java获取各种常用时间方法大全 package cc.javaweb.test; Java中文网,Java获取各种时间大全 import java.text.DateFormat; import j ...

  4. [Java]读取文件方法大全(转)

    [Java]读取文件方法大全   1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 public class ReadFromFile {     /**     ...

  5. JAVA中native方法调用

    在Java中native是关键字.它一般在本地声明,异地用C和C++来实现.它的声明有几点要注意:1)native与访问控制符前后的关系不受限制.2)必须在返回类型之前.3)它一般为非抽象类方法.4) ...

  6. PHP 日常开发过程中的bug集合(持续更新中。。。)

    PHP 日常开发过程中的bug集合(持续更新中...) 在日常php开发过程中,会遇到一些意想不到的bug,所以想着把这些bug记录下来,以免再犯! 1.字符串 '0.00'.'0.0'.'0'  是 ...

  7. java 超详细面经整理(持续更新)2019.12.19

    目录 Java SE 请你解释HashMap中为什么重写equals还要重写hashcode? 请你介绍一下map的分类和常见的情况 请你讲讲Java里面的final关键字是怎么用的? 请你谈谈关于S ...

  8. [03]java中的方法以及控制语句

    00 Java中的语句块 语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句.块确定了局部变量的作用域.块中的程序代码,作为一个整体,是要被一起执行的.块可以被嵌套在另一个块中,但 ...

  9. Java中的方法内联

    Java中的方法内联 1. 什么是方法内联 例如有下面的原始代码: static class B { int value; final int get() { return value; } } pu ...

随机推荐

  1. HCIE笔记-第三节-数据链路层与MAC地址

    如果数据进行封装时,基于E2或者802.3标准,此时我们称之为是一个以太网数据帧. E2和802.3作用:定义帧头和帧尾的格式. 以太网是现在局域网组网的唯一标准. 数据:对于下层的每个层级而言,上层 ...

  2. 得到知识服务app原型设计比较与实践

    一.几种原型设计工具的比较 墨刀 优点: 拥有PC端.手机端.网页版,让你随时随地可以进行产品原型设计: 其定位是主要用于设计移动APP原型,其控件的拖拉.大小的调整,都会自然去匹配相应的母版大小,非 ...

  3. debian 11 开启 samba 共享文件夹

    安装 apt-get install   samba 安装时,提示搜索不到 此包时 解决办法1:apt-get update  更新源 解决办法2:更改镜像源,可以采用阿里云,网易云等镜像站里提供的镜 ...

  4. Es5 - 11 详解

    一.ES简介 ECMAScript,欧洲计算机制造商协会 ES是一种标准,而JS是ES的一种实现 每年的ES版本中都会引入新特性 二.NRM的安装与使用 NRM是切换源的工具 ES6 2.1安装 wi ...

  5. 新华三Gen10服务器进SSA查看、配置阵列

    1.开机自检进F10 2.F10后选择[smart storage administrator](跳到第5步)或选择第一项IP[intelligent provisioning] 3.选择执行维护 4 ...

  6. FreeRTOS --(9)任务管理之启动调度器

    转载自 https://blog.csdn.net/zhoutaopower/article/details/107057528 在使用 FreeRTOS 的时候,一般的,先创建若干任务,但此刻任务并 ...

  7. Linux系统常用命令速查手册

    点击上方"开源Linux",选择"设为星标" 回复"学习"获取独家整理的学习资料! 系统信息 arch      #显示机器的处理器架构(1 ...

  8. 经过一个多月的等待我有幸成为Spring相关项目的Contributor

    给开源项目尤其是Spring这种知名度高的项目贡献代码是比较难的,起码胖哥是这么认为的.有些时候我们的灵感未必契合作者的设计意图,即使你的代码十分优雅. 我曾经给Spring Security提交了一 ...

  9. JUC自定义线程池练习

    JUC自定义线程池练习 首先上面该线程池的大致流程 自定义阻塞队列 首先定义一个双向的队列和锁一定两个等待的condition 本类用lock来控制多线程下的流程执行 take和push方法就是死等, ...

  10. windows 10 21H1 顶部任务栏点击音量或其他图标不出弹框

    右键任务栏,按照图片中描述操作