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. 一切成功均源于长期的积累(转)
  2. 大触教你如何调节python内置函数
  3. R语言实战应用-lightgbm 算法优化:不平衡二分类问题(附代码)
  4. JavaFX Chart设置数值显示
  5. 太平鸟上云 推动中国服饰行业新零售转型
  6. WPF连接WF4的问题
  7. 微软 Chromium Edge 禁用 Google?
  8. DataTable.select()
  9. 【旗帜识别】基于matlab GUI旗帜识别【含Matlab源码 157期】
  10. DOA算法1:MUSIC算法(一)
  11. 上班族中流行以貌取人 汉王人脸通变普及
  12. 博弈论——扩展式博弈(Extensive Game)
  13. 多分支表达-倍数问题
  14. java操作excel表格(最简单的教程!一学即会)
  15. Racket 学习笔记
  16. php strpos 编码问题,PHP代码审计04之strpos函数使用不当
  17. 不想结婚要小孩了!怎么破?
  18. Android Manifest 权限描述大全
  19. springboot集成 security 更改中英文提示信息
  20. 巴菲特:我可以发2100万个巴菲特币|附视频

热门文章

  1. Couchbase 集群小实践
  2. spring配置文件路径修改后web.xml配置
  3. Visual Studio 2008 可扩展性开发(三):Add-In运行机制解析(下)
  4. 修改表格字体颜色_CAD表格文字样式失灵?不,你错了
  5. 用CSS 给网页装潢[3] -构造文本
  6. 个简单C++程序反汇编解析 (Rev. 3)
  7. C#之windows桌面软件第六课:(上集)串口工具实现数据校验、用灯反应设备状态
  8. 剑指offer七:斐波那契数列
  9. python十三:函数
  10. 第 21 章 radiusd - Authentication, Authorization and Accounting server