一些Java的公用方法:

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

1.获取当前时间

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

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

  1. /**
  2. * 时间格式 2018-4-21 16:16:34
  3. * @param date2
  4. * @return
  5. */
  6. public static boolean isDateBefore(String date2) {
  7. try {
  8. Date date1 = new Date();
  9. DateFormat df = DateFormat.getDateTimeInstance();
  10. return date1.before(df.parse(date2));
  11. } catch (ParseException e) {
  12. return false;
  13. }
  14. }

3.比较时间大小

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

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

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

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

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

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

  1. 2个时间段:
  2. begin2, end2
  3. beginTime, endTime
  4.  
  5. 公式:
  6. begin2 <= endTime and end2 >= beginTime
  7.  
  8. if (compareHours(begin2, endTime)>0 && compareHours(beginTime, end2)>0) {
  9. errorMsg = "重叠了";
  10. break;
  11. }

7.获取前后n周的周x

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

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

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

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. 极客时间 深入拆解java虚拟机 一至三讲学习总结

    为什么要学习java虚拟机 1.学习java虚拟机的本质,是了解java程序是如何被执行且优化的.这样一来,才可以从内部入手,达到高效编程的目的.与此同时,你也可以为学习更深层级.更为核心的java技 ...

  2. liunx安装py.27

    liunx安装py.27 按网站(https://blog.csdn.net/u012071918/article/details/78817344) 上的教程安装py.27 1.安装依赖的库 在终端 ...

  3. Sql题面试题

    哪位大神会此题,请给出答案,十分感谢! 哪位大神会此题,请给出答案,十分感谢!

  4. OO第二次博客

    过去三周里,我们完成了多线程电梯的程序设计与构造.这是我第一次接触多线程编程.我感觉最大的困难在于多个线程中的操作,谁先谁后,不是像以前写的单线程程序那样严格确定,所以心里常常会比较慌.尤其是因为多线 ...

  5. 解决:启用多线程调用webBrowsers函数报错:指定的转换无效

    这里就需要委托. 定义一个 委托.加载之后给他绑定一个方法Callback,也就是所说的回掉函数. 然后写一个线程,线程需要一个object 的参数.将你定义的委托当作参数传进线程中的方法. 在线程中 ...

  6. SQL- 行转列,多行转多列 - max 函数

    效果如图,把同一个 code, 按 cate 列相同行的进行合并后分两行,把mode 每种类型转换成 列名 ,主要用到了 max 函数,很实用 if exists(select * from temp ...

  7. 2018-2019-3 网络对抗技术 20165305 Exp3 免杀原理与实践

    1.实验内容及步骤 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 将做实验二时生成的后门文件用virusto ...

  8. rpm包与 yum 安装与卸载

    rpm包的安装:      1.安装一个包 # rpm -ivh 2.升级一个包 # rpm -Uvh 3.移走一个包 # rpm -e 4.安装参数 --force 即使覆盖属于其它包的文件也强迫安 ...

  9. John Deere Service Advisor with Nexiq clone 90% Worked

    FYI, John Deere Service Advisor 90% works with Nexiq China clone. Topic 1: John deere SA possible wi ...

  10. Goland开发工具安装教程

    开发工具: 文本类的编辑器:记事本,notepad,sublime text,atom... 通过命令执行程序 IED:集成开发环境(integrated development environmen ...