一些Java的公用方法:

1:获取当前时间
2:判断当前时间是否在时间date2之前
3:比较时间大小
4:获取某个时间的前n个小时
5:返回某个字符串时间的Calendar对象
6:判断两个时间段是否有重叠
7:获取前后n周的周x
8:获取过去12个月份yyyy-MM

1.获取当前时间

    public static String getToday() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
String today = formatter.format(date);
return today;
}

2.判断当前时间是否在时间date2之前

     /**
* 时间格式 2018-4-21 16:16:34
* @param date2
* @return
*/
public static boolean isDateBefore(String date2) {
try {
Date date1 = new Date();
DateFormat df = DateFormat.getDateTimeInstance();
return date1.before(df.parse(date2));
} catch (ParseException e) {
return false;
}
}

3.比较时间大小

    // 比较时间大小  date1<date2 true
public static boolean compareMinDate(String date1, String date2)
throws ParseException {
Date d1 = convertToCalendar(date1).getTime();
Date d2 = convertToCalendar(date2).getTime();
return d1.before(d2);
}

4.获取某个时间的前n个小时

    // 获取某个时间的前n小时
public static String getBeforeNHour(int n, String nowTime, String pattern) throws Exception {
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
Date date = null;
date = sdf.parse(nowTime);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.add(Calendar.HOUR, n);
return sdf.format(cal.getTime());
}

5.返回某个字符串时间的Calendar对象

     // 返回某个字符串时间的Calendar对象
public static Calendar convertToCalendar(String date) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d = sdf.parse(date);
GregorianCalendar calendar = new GregorianCalendar();
calendar.setTime(d);
return calendar;
}

6.判断两个时间段是否有重叠

2个时间段:
begin2, end2
beginTime, endTime 公式:
begin2 <= endTime and end2 >= beginTime if (compareHours(begin2, endTime)>0 && compareHours(beginTime, end2)>0) {
errorMsg = "重叠了";
break;
}

7.获取前后n周的周x

    private String getLastMonday() {
Calendar cal = Calendar.getInstance();
// n为推迟的周数,1本周,-1向前推迟一周,2下周,依次类推
int n = -1;
String monday;
cal.add(Calendar.DATE, n * 7);
// 想周几,这里就传几Calendar.MONDAY(TUESDAY...)
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
monday = new SimpleDateFormat("yyyy-MM-dd").format(cal.getTime());
return monday;
}

8.获取过去12个月份yyyy-MM

    private String[] getLast12Months(){
DecimalFormat df = new DecimalFormat("00");
String[] last12Months = new String[12];
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)+1); //先+1,才能把本月进去
for(int i=0; i<12; i++){
cal.set(Calendar.MONTH, cal.get(Calendar.MONTH)-1); //逐次往前推1个月
last12Months[i] = cal.get(Calendar.YEAR)+ "-" + df.format(cal.get(Calendar.MONTH)+1);
}
return last12Months;
}

Java — CommonUtil的更多相关文章

  1. java调用c++ dll出现中文乱码

    近期的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作. 在调用中假设路径中包括有中文字符就会出现故障.程序执行就会中止. 以下用一个小样例,来说明记 ...

  2. 手写MVC框架(二)-代码实现和使用示例

    --------上一篇:手写MVC框架(一)-再出发----- 背景 书接上文,之前整理了实现MVC框架需要写哪些东西.这周粗看了一下,感觉也没多少工作量,所以就计划一天时间来完成.周末的时间,哪会那 ...

  3. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  4. 【java】jstack

    介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jsta ...

  5. java http工具类和HttpUrlConnection上传文件分析

    利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...

  6. java归并排序,单线程vs多线程

    一.什么是归并排序 归并排序又称合并排序,它是成功应用分治技术的一个完美例子.对于一个需要排序的数组A[0..n-1],归并排序把它一分为二:A[0..n/2-1]和A[n/2..n-1],并对每个子 ...

  7. 微信APP支付(Java后台生成签名具体步骤)

    public class PayCommonUtil { //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 public static String ...

  8. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  9. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

随机推荐

  1. H3C交换机引发的奇葩故障

    设备:H3C S5120-28P-SI 故障:某个交换机的接口速率只有100Mbps. 描述:这个故障还是很特别的,因为按普通的测试办法很难第一时间判断是交换机的固件问题,我也是做了几乎所有外围设备和 ...

  2. NodeMan架构

    在上一篇文章中我们介绍了NodeMan的基本概念,介绍了这是一套利用NodeJs框架来管理Ubuntu服务器的解决方案,接下来我们会继续介绍关于这样一套解决方案更多细节的内容. 后台: 使用node作 ...

  3. selenium处理元素定位到了点击无效问题

    在WEB自动化测试过程中,经常会遇到这样的问题: 元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断 1.给元素加高亮显示 self.driver.execute_sc ...

  4. laravel中get()与 first()区别、collection与stdClass的区别

    简单的,laravel里get()得到的是一组数据,first()得到的是一个model数据. 从形式上,laravel里每一个model数据(record),在取出的时候都是用的PHP的stdCla ...

  5. JAVA多线程实现的四种方式(转自https://www.cnblogs.com/felixzh/p/6036074.html)

    Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来创建Thread线程.使用ExecutorService.Cal ...

  6. 彻底卸载Xubuntu Kubuntu

    卸载Xubuntu -linux-gnu blueman brltty brltty-x11 catfish cheese-common dbus-user-session dconf-cli deb ...

  7. Delphi调用API函数获取Windows目录信息、获取System目录信息、获取Temp临时文件目录信息

    var Str1, Str2: Array[..Max_Path]of Char;//开辟缓冲区 Str3: Array[..]of Char; begin GetWindowsDirectory(@ ...

  8. Nginx处理请求的11个阶段(agentzh的Nginx 教程学习记录)

    Nginx 处理请求的过程一共划分为 11 个阶段,按照执行顺序依次是 post-read.server-rewrite.find-config.rewrite.post-rewrite.preacc ...

  9. 使用4K分辨率,然后放大DIP200%,软件界面异常.

    简单:WFM主界面.AutoScaleMode  选中DIP,然后使用表格容器,容器分割,容器.就可以快速迁移旧程序. 复杂点:读取桌面分辨率,DIP放大....

  10. (Review cs231n) Object Detection

    目标:我们有几个类别,然后我们要在这张图中找到这些类的所有实例 解决思路:是否可以按照回归的思路进行求解呢? 但是受限制于确定的种类输出问题. 方法:分类和回归是解决问题的两个套路,我们现在对于目标的 ...