一些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. 2018(5)软件架构设计,架构风格,REST

    2018上半年系统分析师试题五 阅读以下关于Web应用设计开发的描述,在答题纸上回答问题1至问题3. [说明] 某公司拟开发一个自由,可定制性强.用户界面友好的在线调查系统,以获取员工在课程学习.对公 ...

  2. 3种检测页面是否符合amp标准的方法

    AMP的关键优势不仅仅在于它能让你的页面更快,还在于它的快可以被验证.有几种方法可以验证AMP文档,它们都会产生完全相同的结果,选择最适合您的开发风格的方法.除了AMP的有效性,您可能还想确认您的AM ...

  3. kubernetes集群应用部署实例

    今天,我们将要带来入门hello world示例,它是一个web留言板应用,基于PHP+Redis的两层分布式架构的web应用,前端PHP web网站通过访问后端Redis数据库完成用户留言的查询和添 ...

  4. java项目对jar包加密流程,防止反编译

    Java 开发语言以其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位.特别是近年来大数据.互联网+.云计算技术的不断发展,Java 开发语言 ...

  5. sql相同表不同查询条件合并显示

    关键字:FULL JOIN 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行. select a.createtime, ISNULL(lp, 0) lp , ISNULL(hp, 0) ...

  6. B. Lynyrd Skynyrd

    传送门: 题意:给出 n,m,q 然后给出模板串,从1-n数字只出现一次,然后给出长度为m的要询问的串. q组询问:每组询问输出 ‘1’或者‘0’ 每组询问 一对x,y    问在x到y中有没有模板串 ...

  7. C++ MFC万能的类向导

    MFC的类向导 只要你掌握了类向导,你基本就已经掌握了MFC了,毕竟布局和代码都是自动生成,再加上C++基础上手还是挺快的,剩下的就是多多练习了. 转自: https://blog.csdn.net/ ...

  8. 2018-2019 20175232 实验二《Java面向对象程序设计》实验报告

    一.实验内容及步骤 1熟练掌握Junit和TDD: TDD(Test Driven Devlopment, 测试驱动开发)我们是该“先写产品代码,然后再写测试代码,通过测试发现了一些Bugs,修改代码 ...

  9. DS18B20初上电显示85℃问题

    以前用的温度采集都是用的AD,这次改为了DS18B20,看了资料,没有很复杂的部分,重要的就是时序.板子出来后初步测试也能正常读取温度,然而有个问题比较奇怪,就是在板子初上电时读取温度总是显示为+85 ...

  10. eclipse中tomcat的add and Remove找不到项目

    在我们运行项目前,都需要将项目部署到tomcat上,但是有时我们会遇到这种情况:项目明明存在,但是eclipse中tomcat的add and remove找不到项目,无法部署,那么这个问题该如何解决 ...