import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;public class DateUtil {/**** 从yyyy-MM-dd HH:mm格式转成yyyyMMddHH格式* @param dateStr* @return*/public static String formatStr(String dateStr){SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");try {Date date = simpleDateFormat.parse(dateStr);simpleDateFormat = new SimpleDateFormat("yyyyMMddHH");return simpleDateFormat.format(date);} catch (ParseException e) {e.printStackTrace();}return null;}/**** 获取指定日期的凌晨* @return*/public static Date toDayStartHour(Date date){Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.set(Calendar.HOUR_OF_DAY, 0);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0);calendar.set(Calendar.MILLISECOND, 0);Date start = calendar.getTime();return start;}/**** 时间增加N分钟* @param date* @param minutes* @return*/public static Date addDateMinutes(Date date,int minutes){Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.MINUTE, minutes);// 24小时制date = calendar.getTime();return date;}/**** 时间递增N小时* @param hour* @return*/public static Date addDateHour(Date date,int hour){Calendar calendar = Calendar.getInstance();calendar.setTime(date);calendar.add(Calendar.HOUR, hour);// 24小时制date = calendar.getTime();return date;}/**** 获取时间菜单* @return*/public static List<Date> getDateMenus(){//定义一个List<Date>集合,存储所有时间段List<Date> dates = new ArrayList<Date>();//循环12次Date date = toDayStartHour(new Date()); //凌晨for (int i = 0; i <12 ; i++) {//每次递增2小时,将每次递增的时间存入到List<Date>集合中dates.add(addDateHour(date,i*2));}//判断当前时间属于哪个时间范围Date now = new Date();for (Date cdate : dates) {//开始时间<=当前时间<开始时间+2小时if(cdate.getTime()<=now.getTime() && now.getTime()<addDateHour(cdate,2).getTime()){now = cdate;break;}}//当前需要显示的时间菜单List<Date> dateMenus = new ArrayList<Date>();for (int i = 0; i <5 ; i++) {dateMenus.add(addDateHour(now,i*2));}return dateMenus;}/**** 时间转成yyyyMMddHH* @param date* @return*/public static String date2Str(Date date){SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHH");return simpleDateFormat.format(date);}public static void main(String[] args) {//存储数据结果List<Date> dateList = new ArrayList<>();//获取到本日的凌晨时间点Date startHour = toDayStartHour(new Date());//循环12次for(int i=0;i<12;i++){dateList.add(addDateHour(startHour,i*2));}for (Date date : dateList) {SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");String format = simpleDateFormat.format(date);System.out.println(format);}}
}

【工具类】时间相关的方法相关推荐

  1. 第三次学JAVA再学不好就吃翔(part87)--Arrays工具类的asList方法

    学习笔记,仅供参考,有错必纠 Arrays工具类的asList方法 方法概述 public static <T> List<T> asList(T... a) 返回一个受指定数 ...

  2. java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例

    本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...

  3. 分页封装实用工具类及其使用方法

    分页封装实用工具类及其使用方法 作者: javaboy2012 Email:yanek@163.com qq:    1046011462 package com.yanek.util; import ...

  4. HttpClient Utils工具类的编写方法分享

    转自: HttpClient Utils工具类的编写方法分享 HttpClient简介: HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的.最新的.功 ...

  5. ( 持续更新,目前含 200+ 工具类 ) DevUtils 是一个 Android 工具库, 主要根据不同功能模块,封装快捷使用的工具类及 API 方法调用。

    DevUtils GitHub About ( 持续更新,目前含 200+ 工具类 ) Roadmap DevUtils 是一个 Android 工具库,主要根据不同功能模块,封装快捷使用的工具类及 ...

  6. ssm整合oracle分页,java实现ssm分页工具类及其使用方法

    分享一下我现在所使用的分页工具类,不像网上的那么规范 纯属自己总结根据逻辑敲出来的,基于mysql的limit来做分页.有不对的地方还望大佬指出,直接上代码 PageTools package com ...

  7. java sort类_JAVA Collections工具类sort()排序方法

    主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static > void sort ...

  8. java图片式验证码的实现(引入hutool工具类和自己编写工具类两种方法)

    自己编写的工具类 效果 可传递位数 生成相应验证图片 可将图片生成File文件.输出流 适用于前后端结合 import javax.imageio.ImageIO; import java.awt.* ...

  9. StringUtils工具类的isBlank()方法使用说明

    在校验一个String类型的变量是否为空时,通常存在3中情况 是否为 null 是否为 "" 是否为空字符串(引号中间有空格)  如: "     ". Str ...

  10. FileUtils工具类的使用方法

    /** * FileUtils支持很多文件操作,如 * 文件写入 * 读取文件 * 创建目录 * 拷贝文件和目录 * 删除文件和目录 * 从URL转换 * 基于统配和过滤查看文件和目录 * 比较文件内 ...

最新文章

  1. C# winform DataGridView 操作大全
  2. 向MySQL数据库中插入数据,sql语句没问题,但插入失败也不报错?
  3. 最简单易懂的对拍讲解
  4. wxWidgets:多重继承
  5. ubuntu修改顶栏颜色
  6. HDU 3486 Interviewe RMQ
  7. 深入理解SpringCloud之Eureka注册过程分析
  8. pythoon介绍、安装环境、基础知识、练习题
  9. 恒生电子笔试题集锦(不断更新)
  10. C# 网上收集的一些所谓的开源项目
  11. python中sklearn.datasets.make_blobs()函数用法
  12. 全球化文案设计: 简明易懂、四海达意
  13. ElasticSearch 2 (25) - 语言处理系列之同义词
  14. 如何有效提升技术[成为大Niu]的两个方法
  15. 【纯净版windows系统】U盘启动制作图文教程
  16. 深入了解 Swarm:去中心化存储和通信系统
  17. zh-un电子显示屏优盘发送与设置方法(P10单红)
  18. 移动端UI设计750揭秘
  19. 【VBA研究】VBA编程产生不重复随机数
  20. 触摸查询系统服务器注册码,多媒体触摸查询系统旗舰版-用户手册(20161215.pdf

热门文章

  1. SQL Server镜像自动生成脚本
  2. [C/CPP系列知识] Type difference of character literals 和 bool in C and C++
  3. C语言位操作符的使用
  4. Android IOC模块,利用了Java反射和Java注解
  5. Android使用ActionBar和ViewPager切换页面
  6. 进程知识点,只需这一篇
  7. mysql查询通过两个字段逆序
  8. golang中的base64
  9. linux下/proc/cpuinfo文件
  10. mybaits十五:使用trim自定义字符串的截取规则