自定义工具类,获取当前时间到第二天的零点、下个月1号零点的时间差(s):
cacheManager.set(monthKey, totalMonCount.toString(), DateUtil.getSecsToEndOfCurrentDay());public class DateUtil {
/**
*获取每月最后一天时间
* @param sDate1
* @return
*/
public static Date getLastDayOfMonth(Date sDate1) {
Calendar cDay1 = Calendar.getInstance();
cDay1.setTime(sDate1); final int lastDay = cDay1.getActualMaximum(Calendar.DAY_OF_MONTH);
Date lastDate = cDay1.getTime();
lastDate.setDate(lastDay); return lastDate;
} /*
获取下一个月第一天凌晨1点
*/
public static Date nextMonthFirstDate() {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 1); //设置为每月凌晨1点
calendar.set(Calendar.DAY_OF_MONTH, 1); //设置为每月1号
calendar.add(Calendar.MONTH, 1); // 月份加一,得到下个月的一号// calendar.add(Calendar.DATE, -1); 下一个月减一为本月最后一天
return calendar.getTime();
} /**
* 获取第二天凌晨0点毫秒数
* @return
*/
public static Date nextDayFirstDate() throws ParseException {
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_YEAR, 1);
cal.set(Calendar.HOUR_OF_DAY, 00);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0); return cal.getTime();
} //*********
/**
* 获取当前时间到下个月凌晨1点相差秒数
* @return
*/
public static Long getSecsToEndOfCurrentMonth(){
Long secsOfNextMonth = nextMonthFirstDate().getTime(); //将当前时间转为毫秒数
Long secsOfCurrentTime = new Date().getTime(); //将时间转为秒数
Long distance = (secsOfNextMonth - secsOfCurrentTime)/1000; if (distance > 0 && distance != null){ return distance;
} return new Long(0);
} /**
* 获取当前时间到明天凌晨0点相差秒数
* @return
*/
public static Long getSecsToEndOfCurrentDay() throws ParseException {
Long secsOfNextDay = nextDayFirstDate().getTime(); //将当前时间转为毫秒数
Long secsOfCurrentTime = new Date().getTime(); //将时间转为秒数
Long distance = (secsOfNextDay - secsOfCurrentTime)/1000; if (distance > 0 && distance != null){ return distance;
} return new Long(0);
}
}
-
contenteditable去除html标签
用正则去除粘贴带的html标签
-
flex和inline-flex区别
flex: 将对象作为弹性伸缩盒显示 inline-flex:将对象作为内联块级弹性伸缩盒显示
-
自建SMTP服务器完成发信,垃圾邮件拦截相关域名处理
发送的邮件会被腾讯邮箱识别为垃圾邮件并直接拦截 原因是没有添加mx,spf,DMARC记录
-
发出的邮件被 QQ 邮箱当作垃圾邮件的讨论
发出的邮件被 QQ 邮箱当作垃圾邮件的讨论
-
node.js使用Nodemailer发送邮件
常常看到一些网站有邮箱获取验证码验证注册或者修改密码等,今天也来了解一下在nodejs + express怎么发送电子邮件。使用模块Nodemailer。这里以qq邮箱举例子。
-
MongoDB $set和$unset做什么的
MongoDB 更新文档中$set和$unset的作用
-
Mongodb字段更新$unset操作符
当使用$操作符匹配任何数组元素,$unset替换指定的元素为null而不是删除掉指定的元素,此行为保持数组大小和位置一直;
-
Mongodb字段更新$set操作符
Mongodb字段更新$set操作符
-
Android IO简化之Okio库
如果之前有使用过Okhttp,那么你一定知道底层的IO读取是由square公司开发的Okio库。它补充了Java.io和java.nio的不足,以便能够更加方便,快速的访问、存储和处理你的数据。而在一般的开发中,我们也可以使用Okio来做IO读写,非常方便深得我心
-
emcc生成wasm,wast,bc文件的方法
Emscripten实现把C/C++文件转成wasm,wast(wasm的可读形式),llvm字节码(bc格式),ll格式(llvm字节码的可读形式)的步骤。