Java — CommonUtil
一些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的更多相关文章
- java调用c++ dll出现中文乱码
近期的开发用到了使用java调用本机动态连接库的功能,将文件路径通过java调用C++代码对文件进行操作. 在调用中假设路径中包括有中文字符就会出现故障.程序执行就会中止. 以下用一个小样例,来说明记 ...
- 手写MVC框架(二)-代码实现和使用示例
--------上一篇:手写MVC框架(一)-再出发----- 背景 书接上文,之前整理了实现MVC框架需要写哪些东西.这周粗看了一下,感觉也没多少工作量,所以就计划一天时间来完成.周末的时间,哪会那 ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- 【java】jstack
介绍 jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jsta ...
- java http工具类和HttpUrlConnection上传文件分析
利用java中的HttpUrlConnection上传文件,我们其实只要知道Http协议上传文件的标准格式.那么就可以用任何一门语言来模拟浏览器上传文件.下面有几篇文章从http协议入手介绍了java ...
- java归并排序,单线程vs多线程
一.什么是归并排序 归并排序又称合并排序,它是成功应用分治技术的一个完美例子.对于一个需要排序的数组A[0..n-1],归并排序把它一分为二:A[0..n/2-1]和A[n/2..n-1],并对每个子 ...
- 微信APP支付(Java后台生成签名具体步骤)
public class PayCommonUtil { //定义签名,微信根据参数字段的ASCII码值进行排序 加密签名,故使用SortMap进行参数排序 public static String ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...
随机推荐
- 极客时间 深入拆解java虚拟机 一至三讲学习总结
为什么要学习java虚拟机 1.学习java虚拟机的本质,是了解java程序是如何被执行且优化的.这样一来,才可以从内部入手,达到高效编程的目的.与此同时,你也可以为学习更深层级.更为核心的java技 ...
- liunx安装py.27
liunx安装py.27 按网站(https://blog.csdn.net/u012071918/article/details/78817344) 上的教程安装py.27 1.安装依赖的库 在终端 ...
- Sql题面试题
哪位大神会此题,请给出答案,十分感谢! 哪位大神会此题,请给出答案,十分感谢!
- OO第二次博客
过去三周里,我们完成了多线程电梯的程序设计与构造.这是我第一次接触多线程编程.我感觉最大的困难在于多个线程中的操作,谁先谁后,不是像以前写的单线程程序那样严格确定,所以心里常常会比较慌.尤其是因为多线 ...
- 解决:启用多线程调用webBrowsers函数报错:指定的转换无效
这里就需要委托. 定义一个 委托.加载之后给他绑定一个方法Callback,也就是所说的回掉函数. 然后写一个线程,线程需要一个object 的参数.将你定义的委托当作参数传进线程中的方法. 在线程中 ...
- SQL- 行转列,多行转多列 - max 函数
效果如图,把同一个 code, 按 cate 列相同行的进行合并后分两行,把mode 每种类型转换成 列名 ,主要用到了 max 函数,很实用 if exists(select * from temp ...
- 2018-2019-3 网络对抗技术 20165305 Exp3 免杀原理与实践
1.实验内容及步骤 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 将做实验二时生成的后门文件用virusto ...
- rpm包与 yum 安装与卸载
rpm包的安装: 1.安装一个包 # rpm -ivh 2.升级一个包 # rpm -Uvh 3.移走一个包 # rpm -e 4.安装参数 --force 即使覆盖属于其它包的文件也强迫安 ...
- 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 ...
- Goland开发工具安装教程
开发工具: 文本类的编辑器:记事本,notepad,sublime text,atom... 通过命令执行程序 IED:集成开发环境(integrated development environmen ...