package org.dromara.raincat.common.holder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.sql.Timestamp;
import java.text.ParseException;
import java.time.Clock;
import java.time.DayOfWeek;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.time.temporal.TemporalAdjusters;
import java.util.Calendar;
import java.util.Date;
/**
* 日期操作类.
*
* @author xiaoyu
*/
public class DateUtils {
public static final Logger LOGGER = LoggerFactory.getLogger(DateUtils.class);
/**
* 要用到的DATE Format的定义.
*/
public static final String DATE_FORMAT_DATEONLY = "yyyy-MM-dd";
public static final String DATE_FORMAT_DATETIME = "yyyy-MM-dd HH:mm:ss";
public static final String DATE_FORMAT_DATETIME14 = "yyyyMMddHHmmss";
public static final String SHORTDATEFORMAT = "yyyyMMdd";
public static final String HMS_FORMAT = "HH:mm:ss";
private static final ZoneId UTC_ZONE = ZoneOffset.UTC.normalized();
private static final ZoneId DEFAULT_ZONE = ZoneId.systemDefault();
private static final Integer QUARTER_FIRST = 1;
private static final Integer QUARTER_SECOND = 2;
private static final Integer QUARTER_THIRD = 3;
private static final Integer QUARTER_FOURTH = 4;
/**
* 把字符串转成日期类型.
* 输入的日期格式:yyyy-MM-dd HH:mm:ss
*
* @param str 日期字符串
* @return 转换后的日期 local date time
* @throws ParseException 异常
* @see LocalDateTime
*/
public static LocalDateTime parseLocalDateTime(final String str) throws ParseException {
return LocalDateTime.parse(str, DateTimeFormatter.ofPattern(DATE_FORMAT_DATETIME));
}
/**
* Gets date yyyy.
*
* @return the date yyyy
* @throws ParseException the parse exception
*/
public static Date getDateYYYY() throws ParseException{
LocalDateTime localDateTime = parseLocalDateTime(getCurrentDateTime());
ZoneId zone = ZoneId.systemDefault();
Instant instant = localDateTime.atZone(zone).toInstant();
return Date.from(instant);
}
/**
* Parse date string.
*
* @param date the date
* @return the string
*/
public static String parseDate(Date date) {
Instant instant = date.toInstant();
ZoneId zone = ZoneId.systemDefault();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
return formaterLocalDateTime(localDateTime);
}
/**
* 把字符串转成特定格式的日期类型.
* 输入的日期格式:yyyy-MM-dd HH:mm:ss
*
* @param str 日期字符串
* @param dateFormat 日期字符串
* @return 转换后的日期 local date time
* @throws ParseException 转换异常
* @see LocalDateTime
*/
public static LocalDateTime parseLocalDateTime(final String str, final String dateFormat) throws ParseException {
LocalDateTime localDateTime = LocalDateTime.parse(str, DateTimeFormatter.ofPattern(DATE_FORMAT_DATETIME));
DateTimeFormatter ofPattern = DateTimeFormatter.ofPattern(dateFormat);
return LocalDateTime.parse(localDateTime.format(ofPattern), ofPattern);
}
/**
* 把字符串转成日期类型.
* 输入的日期格式:yyyy-MM-dd
*
* @param str 日期字符串
* @return 转换后的日期 local date time
* @throws ParseException 异常
* @see LocalDateTime
*/
public static LocalDateTime parseLocalDateTime10(final String str) throws ParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT_DATEONLY);
LocalDateTime time = LocalDateTime.from(LocalDate.parse(str, formatter).atStartOfDay());
return time;
}
/**
* 把字符串转成日期类型.
* 输入的日期格式:yyyy-MM-dd
*
* @param str 日期字符串
* @return 转换后的日期 local date
* @throws ParseException 异常
* @see LocalDateTime
*/
public static LocalDate parseLocalDate(final String str) throws ParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(DATE_FORMAT_DATEONLY);
return LocalDate.parse(str, formatter);
}
/**
* 把字符串转成日期类型.
*
* @param str 日期字符串
* @param format 日期格式
* @return 转换后的日期 local date
* @throws ParseException 异常
* @see LocalDateTime
*/
public static LocalDate parseLocalDate(final String str, final String format) throws ParseException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format);
return LocalDate.parse(str, formatter);
}
/**
* 获得当前的日期毫秒.
*
* @return 当前毫秒数 long
*/
public static long nowTimeMillis() {
return Clock.systemDefaultZone().millis();
}
/**
* 获取从1970年到现在的秒数.
*
* @return 秒数 long
*/
public static long nowEpochSecond() {
return Clock.systemDefaultZone().instant().getEpochSecond();
}
/**
* 获得当前的时间戳.
*
* @return 时间点 instant
*/
public static Instant nowTimestamp() {
return Instant.now(Clock.systemDefaultZone());
}
/**
* yyyy-MM-dd 当前日期.
*
* @return 当前日期 yyyy-MM-dd
*/
public static String getCurrentDate() {
return LocalDate.now().format(DateTimeFormatter.ofPattern(DATE_FORMAT_DATEONLY));
}
/**
* 获取当前日期时间 yyyy-MM-dd HH:mm:ss.
*
* @return 获取当前日期时间 yyyy-MM-dd HH:mm:ss
*/
public static String getCurrentDateTime() {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(DATE_FORMAT_DATETIME));
}
/**
* 获取当前日期时间.
*
* @param format 格式字符串
* @return 获取当前日期时间 current date time
*/
public static String getCurrentDateTime(final String format) {
return LocalDateTime.now().format(DateTimeFormatter.ofPattern(format));
}
/**
* 获取当前时间 hh:mm:ss.
*
* @return 获取当前时间 HH:mm:ss
*/
public static String getCurrentTime() {
return LocalTime.now().format(DateTimeFormatter.ofPattern(HMS_FORMAT));
}
/**
* yyyy-MM-dd 格式化传入日期.
*
* @param date 日期
* @return yyyy -MM-dd 日期
*/
public static String formaterDate(final LocalDate date) {
return date.format(DateTimeFormatter.ofPattern(DATE_FORMAT_DATEONLY));
}
/**
* 将localDateTime 格式化成特定格式的字符串.
*
* @param time 时间
* @param dateFormat 格式化
* @return String string
*/
public static String formaterTime(final LocalTime time, final String dateFormat) {
return time.format(DateTimeFormatter.ofPattern(dateFormat));
}
/**
* yyyyMMdd 格式化传入日期.
*
* @param date 传入的日期
* @return yyyyMMdd 字符串
*/
public static String formaterDateToyyyyMMdd(final LocalDate date) {
return date.format(DateTimeFormatter.ofPattern(SHORTDATEFORMAT));
}
/**
* 将localDateTime 格式化成yyyy-MM-dd HH:mm:ss.
*
* @param dateTime 时间
* @return String string
*/
public static String formaterLocalDateTime(final LocalDateTime dateTime) {
return dateTime.format(DateTimeFormatter.ofPattern(DATE_FORMAT_DATETIME));
}
/**
* 将localDateTime 格式化成特定格式的字符串.
*
* @param dateTime 时间
* @param dateFormat 格式化
* @r
没有合适的资源?快使用搜索试试~ 我知道了~
2阶段提交分布式事务中间件,一致性分布式事务框架
共365个文件
java:261个
xml:39个
yml:15个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 174 浏览量
2023-12-27
10:36:36
上传
评论
收藏 890KB ZIP 举报
温馨提示
一致性分布式事务框架。支持所有弹簧版本,无缝集成。提供对 springcloud dubbo motan RPC 框架的支持。提供 Spring Boot Starter 方法的集成。支持嵌套事务。本地事务存储支持:redis mongodb zookeeper 文件 mysql。事务日志序列化支持:java hessian kryo protostuff。SPI扩展:用户可以自定义序列化和事务日志的存储
资源推荐
资源详情
资源评论
收起资源包目录
2阶段提交分布式事务中间件,一致性分布式事务框架 (365个子文件)
.babelrc 220B
spring.factories 151B
com.alibaba.dubbo.rpc.Filter 77B
com.weibo.api.motan.filter.Filter 57B
.gitignore 379B
.gitignore 43B
index.html 2KB
index.html 285B
index.html 230B
DateUtils.java 25KB
ActorTxTransactionHandler.java 13KB
TxCompensationServiceImpl.java 11KB
RecoverConfiguration.java 11KB
StartTxTransactionHandler.java 10KB
JdbcTransactionRecoverRepository.java 10KB
MongoTransactionRecoverRepository.java 10KB
NettyClientMessageHandler.java 9KB
NettyServerMessageHandler.java 9KB
FileRecoverTransactionServiceImpl.java 9KB
RedisTransactionRecoverRepository.java 8KB
ZookeeperRecoverTransactionServiceImpl.java 8KB
ZookeeperTransactionRecoverRepository.java 8KB
TxConfig.java 8KB
RedisRecoverTransactionServiceImpl.java 7KB
NettyMessageServiceImpl.java 7KB
NettyClientServiceImpl.java 7KB
TxTransactionExecutorService.java 7KB
FileTransactionRecoverRepository.java 7KB
TxManagerServiceImpl.java 7KB
AbstractTxTransactionExecutor.java 6KB
NettyServerServiceImpl.java 6KB
Test1ServiceImpl.java 6KB
TxManagerInfoServiceImpl.java 6KB
RedisTxTransactionGroupServiceImpl.java 6KB
JdbcRecoverTransactionServiceImpl.java 6KB
TxManagerLocator.java 5KB
MongoRecoverTransactionServiceImpl.java 5KB
RaincatHystrixConcurrencyStrategy.java 5KB
TxTransactionEventPublisher.java 5KB
TransactionRecoverUtils.java 5KB
IdWorkerUtils.java 5KB
PayServiceImpl.java 4KB
SqlHelper.java 4KB
RaincatAutoConfiguration.java 4KB
JedisClientSentinel.java 4KB
AdminConfiguration.java 4KB
VersionUtils.java 4KB
RecoverTransactionController.java 4KB
HttpTransactionExecutor.java 4KB
JedisClientSingle.java 4KB
TxCompensationManager.java 4KB
TxManagerConfiguration.java 4KB
OkHttpTools.java 3KB
AspectTransactionServiceImpl.java 3KB
NettyMessageActionEnum.java 3KB
NettyPipelineInit.java 3KB
PageHelper.java 3KB
PayController.java 3KB
InitServiceImpl.java 3KB
TxDbConfig.java 3KB
SwaggerConfig.java 3KB
SwaggerConfig.java 3KB
TxManagerMessageService.java 3KB
SpringCloudTxTransactionInterceptor.java 3KB
CommonConstant.java 3KB
StartCompensationHandler.java 3KB
TxManagerController.java 3KB
JedisClient.java 3KB
CountDownLatchHelper.java 3KB
ProtostuffSerializer.java 3KB
JedisClientCluster.java 3KB
SwaggerConfig.java 3KB
TxTransactionItem.java 3KB
ConvertHelper.java 3KB
NettyClientHandlerInitializer.java 3KB
NettyServerHandlerInitializer.java 3KB
TransactionRecoverRepository.java 3KB
LogUtil.java 3KB
ExecutorMessageTool.java 3KB
TransactionStatusEnum.java 3KB
ExtensionLoader.java 3KB
TxTransactionEventHandler.java 3KB
TxTransactionGroupServiceTest.java 3KB
SocketManager.java 3KB
TxManagerService.java 3KB
CompensationCacheTypeEnum.java 3KB
ProtostuffCodecServiceImpl.java 3KB
ProtostuffSerializePool.java 3KB
OrderController.java 3KB
HessianSerializePool.java 2KB
BlockTaskHelper.java 2KB
HessianCodecServiceImpl.java 2KB
ProtostuffSerialize.java 2KB
AuthInterceptor.java 2KB
KryoCodecServiceImpl.java 2KB
AjaxResponse.java 2KB
TxTransactionGroupController.java 2KB
TxTransactionThreadPool.java 2KB
InsideCompensationHandler.java 2KB
KryoSerializer.java 2KB
共 365 条
- 1
- 2
- 3
- 4
资源评论
Java程序员-张凯
- 粉丝: 1w+
- 资源: 6649
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 解决未在远程桌面会话中捕获到鼠标,vmguest.iso软件分享给大家
- JSP+SQL基于WEB的开放性实验管理系统设计与实现(源代码+论文+开题报告+中英文献+答辩PPT).rar
- log4net配置文件!!!!!!!!!!!!!!!!!
- 河南统计面板数据集(2010-2022年).xlsx
- OrcaleDBHelper帮助类!!!!!!!!!!!!
- log4net帮助类,用来写日志!!!!!!!!!!!!!
- Windows10时间同步源
- 信呼OA系统2.1.7版源码
- 3122080306 邹子轩 实验报告二.docx
- 基于STM32 NUCLEO板设计彩色LED照明灯(纯cubeMX开发)(大赛作品,文档完整,可直接运行)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功