package com.mqttsnet.thinglinks.common.core.utils;
import java.lang.management.ManagementFactory;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.time.*;
import java.time.format.DateTimeFormatter;
import java.util.*;
import com.alibaba.fastjson.JSONArray;
import com.github.pagehelper.util.StringUtil;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
* 时间工具类
*
* @author thinglinks
*/
public class DateUtils extends org.apache.commons.lang3.time.DateUtils
{
public static String YYYY = "yyyy";
public static String YYYY_MM = "yyyy-MM";
public static String YYYY_MM_DD = "yyyy-MM-dd";
public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
private static String[] parsePatterns = {
"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
"yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
"yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
/**
* 获取当前时间
*
* @return 当前日期
*/
public static Timestamp getNowTime() {
SimpleDateFormat dateFormat = new SimpleDateFormat(YYYY_MM_DD_HH_MM_SS);
Timestamp nowTime = Timestamp.valueOf(dateFormat.format(new Date()));
return nowTime;
}
/**
* 获取当前系统时间.
* 默认模板格式yyyy-MM-dd hh:mm:ss.
*
* @return 当前系统时间
*/
public static String getCurrentDateTime() {
return getCurrentDateTime(YYYY_MM_DD_HH_MM_SS);
}
/**
* 获取当前系统同期。
*
* @return 当前系统日期
* @author zhenggz 2003-11-09
*/
public static String getCurrentDate() {
return getCurrentDateTime(YYYY_MM_DD);
}
/**
* 获取当前系统时间.
*
* @return 当前系统时间
*/
public static String getCurrentDateTime(String pattern) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
return sdf.format(cal.getTime());
}
public static Date getDate(String dateStr) throws ParseException {
return getDate(dateStr, YYYY_MM_DD_HH_MM_SS);
}
public static Date getDate(String dateStr, String pattern) throws
ParseException {
Date date = null;
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
date = dateFormat.parse(dateStr);
return date;
}
public static String getDateString(Date date) {
return getString(date, YYYY_MM_DD);
}
public static String getDateTimeString(Date date) {
return getString(date, YYYY_MM_DD_HH_MM_SS);
}
public static String getString(Date date, String pattern) {
SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
return dateFormat.format(date);
}
public static int getHour(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
return hour;
}
public static long secsOf2Day(String day1, String day2) {
try {
Date date1 = getDate(day1);
Date date2 = getDate(day2);
long secs = Math.abs(date1.getTime() - date2.getTime()) / 1000;
return secs;
} catch (Exception e) {
return -1;
}
}
public static String getDateBefore(String datetimes, int day) {
Calendar now = Calendar.getInstance();
try {
now.setTime(getDate(datetimes));
} catch (ParseException e) {
System.out.println("时间格式 [ " + datetimes + " ] 无法被解析:" + e.toString());
return null;
}
now.set(Calendar.DATE, now.get(Calendar.DATE) - day);
return getString(now.getTime(), YYYY_MM_DD_HH_MM_SS);
}
/**
* 获取当前Date型日期
*
* @return Date() 当前日期
*/
public static Date getNowDate()
{
return new Date();
}
/**
* 获取当前日期, 默认格式为yyyy-MM-dd
*
* @return String
*/
public static String getDate()
{
return dateTimeNow(YYYY_MM_DD);
}
public static final String getTime()
{
return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
}
public static final String dateTimeNow()
{
return dateTimeNow(YYYYMMDDHHMMSS);
}
public static final String dateTimeNow(final String format)
{
return parseDateToStr(format, new Date());
}
public static final String dateTime(final Date date)
{
return parseDateToStr(YYYY_MM_DD, date);
}
public static final String parseDateToStr(final String format, final Date date)
{
return new SimpleDateFormat(format).format(date);
}
public static final Date dateTime(final String format, final String ts)
{
try
{
return new SimpleDateFormat(format).parse(ts);
}
catch (ParseException e)
{
throw new RuntimeException(e);
}
}
/**
* 日期路径 即年/月/日 如2018/08/08
*/
public static final String datePath()
{
Date now = new Date();
return DateFormatUtils.format(now, "yyyy/MM/dd");
}
/**
* 日期路径 即年/月/日 如20180808
*/
public static final String dateTime()
{
Date now = new Date();
return DateFormatUtils.format(now, "yyyyMMdd");
}
/**
* 日期型字符串转化为日期 格式
*/
public static Date parseDate(Object str)
{
if (str == null)
{
return null;
}
try
{
return parseDate(str.toString(), parsePatterns);
}
catch (ParseException e)
{
return null;
}
}
/**
* 获取服务器启动时间
*/
public static Date getServerStartDate()
{
long time = ManagementFactory.getRuntimeMXBean().getStartTime();
return new Date(time);
}
/**
* 计算两个时间差
*/
public static String getDatePoor(Date endDate, Date nowDate)
{
long nd = 1000 * 24 * 60 * 60;
long nh = 1000 * 60 * 60;
long nm = 1000 * 60;
// long ns = 1000;
// 获得两个时间的毫秒时间差异
long diff = endDate.getTime() - nowDate.getTime();
// 计算差多少天
long day = diff / nd;
// 计算差多少小时
long hour = diff % nd / nh;
// 计算差多少分钟
long min = diff % nd % nh / nm;
// 计算差多少秒//输出结果
// long sec = diff % nd % nh % nm / ns;
return day + "天" + hour + "小时" + min + "分钟";
}
//============================借助Calendar类获取今天、昨天、本周、上周、本年及特定时间的开始时间和结束时间(返回类型为date类型)========================
/**
* 获取当天开始时间
*
* @return
*/
public static Date getDayBegin() {
Calendar cal = Calendar.getInstance();
//0点
cal.set(Calendar.HOUR_OF_DAY, 0);
//0分
cal.set(Calendar.MINUTE, 0);
//0秒
cal.set(Calendar.SECOND, 0);
//0毫秒
cal.set(Calendar.MILLISECOND, 0);
return cal.getTime();
}
/**
* 获取当前时间
*/
public static String getNow() {
LocalDateTim
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
核心功能: 系统管理:用户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理、参数设置、通知公告、日志管理 系统监控:在线用户、定时任务、Sentinel控制台、Nacos控制台、Admin控制台、任务调度管理 系统工具:表单构建、代码生成、系统接口 设备集成:设备管理(支持MQTT协议、WebSocket协议、TCP-IP协议设备接入)、子设备管理、产品管理、协议管理、规则引擎(设备联动) 设备调试:实时日志、命令下发 规则引擎消息转发:支持KAFKA节点、HTTP节点、PREDICATE节点、ROCKET_MQ节点、RABBIT_MQ节点、MYSQL节点、MQTT节点、TOPIC节点、LOG节点 核心技术: 1、采用前后端分离的模式,前端框架VUE。 2、后端采用Spring Boot、Spring Cloud & Alibaba。 3、MqttBroker(支持集群化部署)基于Netty、Reactor3、Reactor-netty。 4、注册中心、配置中心选型Nacos,权限认证使用Redis。 5、流量控制框架选型Sentinel,分布式事务选型Seata。 6、时序数据
资源推荐
资源详情
资源评论
收起资源包目录
基于Spring Cloud+Netty+Sentinel+Seata+TDengine+Vue的物联网平台项目源码+数据 (1044个子文件)
io.seata.server.coordinator.AbstractCore 160B
seata-server.bat 4KB
package.bat 165B
clean.bat 124B
registry.conf 2KB
file.conf 2KB
io.seata.core.store.db.DataSourceProvider 139B
.env.development 258B
.editorconfig 536B
.eslintignore 307B
file.conf.example 3KB
spring.factories 528B
spring.factories 345B
spring.factories 286B
spring.factories 213B
spring.factories 197B
spring.factories 185B
spring.factories 146B
spring.factories 139B
spring.factories 138B
spring.factories 136B
spring.factories 129B
spring.factories 65B
deviceManagement.gif 1.08MB
401.gif 160KB
.gitignore 289B
ie.html 23KB
index.html 14KB
favicon.ico 17KB
DateUtils.java 53KB
GB32960DataParseImpl.java 49KB
RedisService.java 42KB
ExcelUtil.java 36KB
ProductServiceImpl.java 33KB
DeviceDatasServiceImpl.java 32KB
Convert.java 26KB
DeviceServiceImpl.java 25KB
ByteUtils.java 25KB
HTMLFilter.java 20KB
RuleDeviceLinkageServiceImpl.java 16KB
DeviceInfoServiceImpl.java 16KB
GenTableServiceImpl.java 16KB
SysUserServiceImpl.java 16KB
RuleController.java 16KB
UUID.java 16KB
SysMenuServiceImpl.java 15KB
ReflectUtils.java 15KB
TdEngineController.java 14KB
VelocityUtils.java 14KB
StringUtils.java 14KB
AsyncConfig.java 13KB
HexUtils.java 12KB
SysUserController.java 12KB
EncrypRSA.java 12KB
SysRoleServiceImpl.java 12KB
CodeUtil.java 11KB
DeviceController.java 10KB
SysDeptServiceImpl.java 10KB
Base64.java 9KB
ProductController.java 9KB
ByteArrayUtil.java 8KB
GenUtils.java 8KB
ActionCommandsServiceImpl.java 8KB
ServletUtils.java 8KB
GenTableColumn.java 8KB
GenTable.java 8KB
RuleConditionsServiceImpl.java 8KB
SysRoleController.java 8KB
TdEngineServiceImpl.java 8KB
LogAspect.java 7KB
DeviceActionServiceImpl.java 7KB
ProtocolServiceImpl.java 7KB
GenController.java 7KB
SysUser.java 7KB
SysJobServiceImpl.java 7KB
FileUtils.java 7KB
RocketMQTemplateProducer.java 7KB
ProductTemplateServiceImpl.java 7KB
SwaggerAutoConfiguration.java 7KB
PreAuthorizeAspect.java 7KB
FormatUtil.java 7KB
IpUtils.java 7KB
SwaggerProperties.java 7KB
FileUploadUtils.java 7KB
Encode.java 7KB
SysLoginService.java 6KB
SysJobController.java 6KB
SysProfileController.java 6KB
SysDictTypeServiceImpl.java 6KB
ByteUtil.java 6KB
RuleServiceImpl.java 6KB
SysDeptController.java 6KB
SysMenuController.java 6KB
SysConfigServiceImpl.java 6KB
JobInvokeUtil.java 6KB
SysRole.java 6KB
SysMenu.java 6KB
ProductService.java 5KB
ProductServicesServiceImpl.java 5KB
CharsetKit.java 5KB
共 1044 条
- 1
- 2
- 3
- 4
- 5
- 6
- 11
资源评论
shangjg3
- 粉丝: 1039
- 资源: 101
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功