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() {
LocalDateTime ldt1 = LocalDateTime.now();
DateTimeFormatter dtf1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String temp = dtf1.format(ldt1);
return temp;
}
/**
* 获取当前时间
*/
public static String getNow(String zone) {
Local
没有合适的资源?快使用搜索试试~ 我知道了~
采用Spring Cloud 微服务架构,一款高性、高吞吐量、高扩展性的物联网系统
共1102个文件
java:509个
svg:125个
vue:119个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 36 浏览量
2023-10-13
09:28:27
上传
评论 2
收藏 6.76MB ZIP 举报
温馨提示
开源ThingLinks物联网一体化平台,高性能、高吞吐量、高扩展性的物联网平台!单机可以支持百万链接,同时支持自定义扩展功能,功能非常强大,采用netty作为通信层组件,支持插件化开发集成采用前后端分离的模式,前端框架VUE。后端采用Spring Boot、Spring Cloud & Alibaba。MqttBroker(支持集群化部署)基于Netty、Reactor3、Reactor-netty。注册中心、配置中心选型Nacos,权限认证使用Redis。流量控制框架选型Sentinel,分布式事务选型Seata。时序数据库采用TDengine开源、高效的物联网大数据平台、处理物联网海量数据写入与负载查询。支持统一产品模型管理,多种设备,多种厂家,统一设备连接管理,多协议适配(MQTT,WebSocket,TCP,UDP,CoAP,HTTP等)。灵活的规则引擎,设备告警,消息通知,数据转发。设备地理位置可视化查看,可视化大屏。TDengine时序数据库超级表设计概念:每个设备一张表,每类设备一个超级表
资源推荐
资源详情
资源评论
收起资源包目录
采用Spring Cloud 微服务架构,一款高性、高吞吐量、高扩展性的物联网系统 (1102个子文件)
io.seata.server.coordinator.AbstractCore 157B
seata-server.bat 3KB
registry.conf 2KB
file.conf 2KB
io.seata.core.store.db.DataSourceProvider 137B
.env.development 247B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 372B
Dockerfile 323B
Dockerfile 323B
.DS_Store 6KB
.editorconfig 514B
.eslintignore 298B
file.conf.example 3KB
spring.factories 521B
spring.factories 340B
spring.factories 282B
spring.factories 211B
spring.factories 192B
spring.factories 182B
spring.factories 144B
spring.factories 136B
spring.factories 135B
spring.factories 134B
spring.factories 125B
spring.factories 64B
deviceManagement.gif 1.08MB
401.gif 160KB
.gitignore 490B
.gitignore 265B
ie.html 23KB
index.html 13KB
favicon.ico 17KB
DateUtils.java 52KB
GB32960DataParseImpl.java 48KB
RedisService.java 40KB
ExcelUtil.java 34KB
ProductServiceImpl.java 32KB
DeviceDatasServiceImpl.java 32KB
Convert.java 25KB
DeviceServiceImpl.java 25KB
ByteUtils.java 24KB
HTMLFilter.java 19KB
RuleDeviceLinkageServiceImpl.java 19KB
DeviceInfoServiceImpl.java 16KB
GenTableServiceImpl.java 16KB
RuleController.java 15KB
SysUserServiceImpl.java 15KB
UUID.java 15KB
SysMenuServiceImpl.java 14KB
ReflectUtils.java 14KB
TdEngineController.java 14KB
VelocityUtils.java 14KB
StringUtils.java 13KB
DeviceController.java 13KB
AsyncConfig.java 12KB
HexUtils.java 12KB
SysUserController.java 11KB
EncrypRSA.java 11KB
SysRoleServiceImpl.java 11KB
CodeUtil.java 11KB
SysDeptServiceImpl.java 9KB
ProductController.java 9KB
Base64.java 9KB
ActionCommandsServiceImpl.java 8KB
ByteArrayUtil.java 8KB
GenUtils.java 8KB
ServletUtils.java 8KB
GenTableColumn.java 8KB
RuleConditionsServiceImpl.java 8KB
GenTable.java 8KB
TdEngineServiceImpl.java 8KB
SysRoleController.java 7KB
LogAspect.java 7KB
DeviceActionServiceImpl.java 7KB
ProtocolServiceImpl.java 7KB
GenController.java 7KB
SysUser.java 7KB
SysJobServiceImpl.java 7KB
FileUtils.java 7KB
SwaggerAutoConfiguration.java 7KB
RocketMQTemplateProducer.java 7KB
ProductTemplateServiceImpl.java 7KB
KafkaConsumerConfig.java 7KB
PreAuthorizeAspect.java 7KB
IpUtils.java 6KB
FormatUtil.java 6KB
FileUploadUtils.java 6KB
Encode.java 6KB
SwaggerProperties.java 6KB
SysLoginService.java 6KB
SysJobController.java 6KB
SysProfileController.java 6KB
共 1102 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
- Dreg_2024-03-16资源很实用,内容详细,值得借鉴的内容很多,感谢分享。
Java程序员-张凯
- 粉丝: 1w+
- 资源: 7366
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Qt和openCV人脸识别小程序(linux-ubuntu系统下) +C++项目源码+文档说明
- ElasticSearch同步MySQL环境搭建笔记
- 基于S5P6818平台+Linux系统实现电子阅读系统+C语言项目源码+文档说明
- 三星 Samsung Xpress SL M2820 激光打印机系列
- IE-PPT-DEMO
- 家具购物小程序+php
- 基于ARM-Linux的嵌入式视觉移动追踪系统(通过Android APP进行无线控制 )+C++项目源码+文档说明
- 三星 Samsung Xpress SL M2820 激光打印机系列
- PyQT6 GUI编程开发桌面软件
- 测试注册使用权限.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功