From 9d7d7331c3fb702f82a65bf4912e79c22762065c Mon Sep 17 00:00:00 2001
From: yexuejc <1107047387@qq.com>
Date: Sun, 31 Jan 2021 13:12:13 +0800
Subject: [PATCH] =?UTF-8?q?1.4.1=20=E5=8D=87=E7=BA=A7=E6=89=80=E6=9C=89?=
=?UTF-8?q?=E4=BE=9D=E8=B5=96=EF=BC=8C=E5=A2=9E=E5=8A=A0DateTimeUtil?=
=?UTF-8?q?=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 134 ++++++++--------
UPDATE.md | 13 ++
pom.xml | 123 ++++++++-------
.../com/yexuejc/base/util/DateTimeUtil.java | 143 +++++++++++-------
.../com/yexuejc/base/util/ToUeProperty.java | 8 +
5 files changed, 243 insertions(+), 178 deletions(-)
diff --git a/README.md b/README.md
index e9fc362..488de4d 100644
--- a/README.md
+++ b/README.md
@@ -1,67 +1,67 @@
-yexuejc-base 基于jdk8常用工具包
-----------------------
-源码地址:
-github:https://github.com/yexuejc/yexuejc-base
-gitee:https://gitee.com/jzsw-it/yexuejc-base
-
-### 说明
->1. 支持环境:java8
->2. 该工具包基于springboot提取,按理说适用于所有java工程
->3. 其中依赖jjwt、validation-api,排除请使用
-> ```
->
->
-> xxx
-> xxxx
->
->
-> ```
->
->4. `1.1.9` 升级JWT为单例类
->5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
->##### 6. 从`1.3.0`开始,版本维护转由`成都极致思维网络科技有限公司`向maven中央仓库发布版本,同时变更组织`groupId`为`top.yexuejc`。使用者请尽快升级到`1.3.0`以上(1.3.0代码向下兼容)
-
-
-### 使用
->yexuejc.base.version=1.3.0
-
-pom.xml
-```
-
-
- top.yexuejc
- yexuejc-base
- ${yexuejc.base.version}
-
-
-```
-
-#### 附:1.3.0之前的使用方式
-pom.xml
-```
-
-
- com.yexuejc.base
- yexuejc-base
- 1.3.0以下
-
-
-
-
- yexuejc-nexus-public
- yexuejc-nexus-public
- https://nexus.yexuejc.club/repository/maven-public/
-
-
-```
-
-### 工具文档
-[Wiki](WIKI.md)
-
-### 更新日志
-[更新记录](UPDATE.md)
-
-#### 项目发展
-本工程项目由maxf基于日常使用,从[yexuejc-springboot](https://github.com/yexuejc/yexuejc-springboot.git)(_准备移交版本控制_)中抽离开源独立发展,后续增加许多常用工具包。
-使用者逐渐增多后考虑可靠性和稳定性原则,移交版本控制给`成都极致思维网络科技有限公司`管理,maven包直接发布到中央仓库。
-开源工程项目仍然保持继续维护和欢迎更多愿意贡献的小伙伴参与。
+yexuejc-base 基于jdk8常用工具包
+----------------------
+源码地址:
+github:https://github.com/yexuejc/yexuejc-base
+gitee:https://gitee.com/jzsw-it/yexuejc-base
+
+### 说明
+>1. 支持环境:java8
+>2. 该工具包基于springboot提取,按理说适用于所有java工程
+>3. 其中依赖jjwt、validation-api,排除请使用
+> ```
+>
+>
+> xxx
+> xxxx
+>
+>
+> ```
+>
+>4. `1.1.9` 升级JWT为单例类
+>5. `1.2.3` 修复RSA加密(签名)Base64Url 问题,如需使用RSA请使用1.2.3+
+>##### 6. 从`1.3.0`开始,变更组织`groupId`为`top.yexuejc`。使用者请尽快升级到`1.3.0`以上(1.3.0代码向下兼容)
+
+
+### 使用
+>yexuejc.base.version=1.4.1
+
+pom.xml
+```
+
+
+ top.yexuejc
+ yexuejc-base
+ ${yexuejc.base.version}
+
+
+```
+
+#### 附:1.3.0之前的使用方式
+pom.xml
+```
+
+
+ com.yexuejc.base
+ yexuejc-base
+ 1.3.0以下
+
+
+
+
+ yexuejc-nexus-public
+ yexuejc-nexus-public
+ https://nexus.yexuejc.club/repository/maven-public/
+
+
+```
+
+### 工具文档
+[Wiki](WIKI.md)
+
+### 更新日志
+[更新记录](UPDATE.md)
+
+#### 项目发展
+本工程项目由maxf基于日常使用,从[yexuejc-springboot](https://github.com/yexuejc/yexuejc-springboot.git)(_准备移交版本控制_)中抽离开源独立发展,后续增加许多常用工具包。
+使用者逐渐增多后考虑可靠性和稳定性原则,移交版本控制给`成都极致思维网络科技有限公司`管理,maven包直接发布到中央仓库。
+开源工程项目仍然保持继续维护和欢迎更多愿意贡献的小伙伴参与。
diff --git a/UPDATE.md b/UPDATE.md
index 783562d..60151df 100644
--- a/UPDATE.md
+++ b/UPDATE.md
@@ -1,6 +1,19 @@
yexuejc-base 更新记录
------------------
+#### version :1.4.1
+**time:2021-1-31 12:59:24**
+**branch:** master
+**update:**
+>1. 升级所有依赖
+>1. 增加DateTimeUtil类的功能
+#
+#### version :1.4.0
+**time:2020-04-13 20:49:32**
+**branch:** master
+**update:**
+>1. 优化Execl 和 Jwt 工具
+#
#### version :1.3.9
**time:2019-1-11 16:50:51**
**branch:** master
diff --git a/pom.xml b/pom.xml
index f4835f2..4713a52 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
top.yexuejc
yexuejc-base
- 1.4.0
+ 1.4.1
${project.artifactId}
https://github.com/yexuejc/yexuejc-base
@@ -39,19 +39,19 @@
- https://nexus.yexuejc.club/repository/
- https://nexus.mcworle.com/repository/
+ https://nexus.yexuejc.top/repository/
+ https://nexus.hm3981.com/repository/
http://maven.aliyun.com/nexus/content/groups/public
https://jitpack.io
- 0.7.0
+ 0.9.1
true
1.8
- 1.1.0.Final
- 1.10
- 2.6
- 1.60
- 20.0
- 3.13
+ 3.0.0
+ 1.15
+ 2.8.0
+ 1.68
+ 30.1-jre
+ 5.0.0
UTF-8
UTF-8
@@ -67,9 +67,15 @@
${jjwt.version}
+
+
+
+
+
+
- javax.validation
- validation-api
+ jakarta.validation
+ jakarta.validation-api
${validation-api.version}
@@ -118,6 +124,7 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.8.1
UTF-8
8
@@ -128,7 +135,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.0.1
+ 3.2.1
attach-sources
@@ -139,48 +146,50 @@
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- build-info
-
-
-
-
-
- true
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -226,16 +235,16 @@
${repos.yexuejc.url}maven-snapshots/
-
-
diff --git a/src/main/java/com/yexuejc/base/util/DateTimeUtil.java b/src/main/java/com/yexuejc/base/util/DateTimeUtil.java
index 50533e5..6b0729b 100644
--- a/src/main/java/com/yexuejc/base/util/DateTimeUtil.java
+++ b/src/main/java/com/yexuejc/base/util/DateTimeUtil.java
@@ -148,6 +148,55 @@ public class DateTimeUtil {
return date;
}
+ /**
+ * LocalDate 转 Date
+ *
+ * @param localDate
+ * @return
+ */
+ public static Date parseDate(LocalDate localDate) {
+ ZoneId zone = ZoneId.systemDefault();
+ Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
+ return Date.from(instant);
+ }
+
+ /**
+ * LocalDateTime 转 Date
+ *
+ * @param localDateTime
+ * @return
+ */
+ public static Date parseDate(LocalDateTime localDateTime) {
+ ZoneId zoneId = ZoneId.systemDefault();
+ ZonedDateTime zdt = localDateTime.atZone(zoneId);
+ return Date.from(zdt.toInstant());
+ }
+
+ /**
+ * LocalTime 转 Date
+ *
+ * @param localTime 时间
+ * @return 当前日期的指定时间
+ */
+ public static Date parseDate(LocalTime localTime) {
+ LocalDate localDate = LocalDate.now();
+ return parseDate(localDate, localTime);
+ }
+
+ /**
+ * LocalDate + LocalTime 转 Date
+ *
+ * @param localDate 日期
+ * @param localTime 时间
+ * @return 指定日期的指定时间
+ */
+ public static Date parseDate(LocalDate localDate, LocalTime localTime) {
+ LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
+ ZoneId zone = ZoneId.systemDefault();
+ Instant instant = localDateTime.atZone(zone).toInstant();
+ return Date.from(instant);
+ }
+
/**
* Date 转 ZonedDateTime
*
@@ -172,30 +221,6 @@ public class DateTimeUtil {
return instant.atZone(zoneId).toLocalDateTime();
}
- /**
- * LocalDateTime 转 Date
- *
- * @param localDateTime
- * @return
- */
- public static Date parseLocalDateTime(LocalDateTime localDateTime) {
- ZoneId zoneId = ZoneId.systemDefault();
- ZonedDateTime zdt = localDateTime.atZone(zoneId);
- return Date.from(zdt.toInstant());
- }
-
- /**
- * LocalDate 转 Date
- *
- * @param localDate
- * @return
- */
- public static Date parseData(LocalDate localDate) {
- ZoneId zone = ZoneId.systemDefault();
- Instant instant = localDate.atStartOfDay().atZone(zone).toInstant();
- return Date.from(instant);
- }
-
/**
* Date 转 LocalDate
*
@@ -204,9 +229,8 @@ public class DateTimeUtil {
*/
public static LocalDate parseLocalDate(Date date) {
Instant instant = date.toInstant();
- ZoneId zone = ZoneId.systemDefault();
- LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone);
- return localDateTime.toLocalDate();
+ ZoneId zoneId = ZoneId.systemDefault();
+ return instant.atZone(zoneId).toLocalDate();
}
/**
@@ -223,30 +247,40 @@ public class DateTimeUtil {
}
/**
- * Date 转 LocalTime
+ * Long 转 LocalDateTime
*
- * @param localTime
- * @return 当前日期的指定时间
+ * @param timestamp 13位(毫秒)
+ * @return
*/
- public static Date parseDate(LocalTime localTime) {
- LocalDate localDate = LocalDate.now();
- return parseDate(localDate, localTime);
+ public static LocalDateTime parseLocalDateTime13(long timestamp) {
+ Instant instant = Instant.ofEpochMilli(timestamp);
+ ZoneId zone = ZoneId.systemDefault();
+ return LocalDateTime.ofInstant(instant, zone);
}
/**
- * Date 转 LocalTime
+ * Long 转 LocalDateTime
*
- * @param localDate
- * @param localTime
- * @return 指定日期的指定时间
+ * @param timestamp 10位(秒)
+ * @return
*/
- public static Date parseDate(LocalDate localDate, LocalTime localTime) {
- LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime);
+ public static LocalDateTime parseLocalDateTime10(long timestamp) {
+ Instant instant = Instant.ofEpochMilli(timestamp * 1000);
ZoneId zone = ZoneId.systemDefault();
- Instant instant = localDateTime.atZone(zone).toInstant();
- return Date.from(instant);
+ return LocalDateTime.ofInstant(instant, zone);
}
+ /**
+ * LocalDateTime 转 Long
+ *
+ * @param localDateTime
+ * @return 13位(毫秒)
+ */
+ public static long parseLong(LocalDateTime localDateTime) {
+ ZoneId zone = ZoneId.systemDefault();
+ Instant instant = localDateTime.atZone(zone).toInstant();
+ return instant.toEpochMilli();
+ }
/**
* 格式化时间
* 格式 yyyy-MM-dd HH:mm:ss
@@ -255,7 +289,7 @@ public class DateTimeUtil {
* @return
*/
public static String format(LocalDateTime dateTime) {
- return format(dateTime, "");
+ return format(dateTime, null);
}
/**
@@ -273,22 +307,23 @@ public class DateTimeUtil {
return df.format(dateTime);
}
- /** public static void main(String[] args) {
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- System.out.println(df.format(zonedDateTime2Date(ZonedDateTime.now())));
- System.out.println(df2.format(date2ZonedDateTime(new Date())));
- System.out.println(getWeek4First());
- System.out.println(format(getWeek4First(LocalDate.parse("2018-02-10")).atTime(LocalTime.MIN)));
- System.out.println(format(getWeek4Last(LocalDate.parse("2018-02-10")).atTime(LocalTime.MAX)));
+ /** public static void main(String[] args) {
+ SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ System.out.println(df.format(zonedDateTime2Date(ZonedDateTime.now())));
+ System.out.println(df2.format(date2ZonedDateTime(new Date())));
- System.out.println(format(getMonth4First().atTime(LocalTime.MIN)));
- System.out.println(format(getMonth4Last().atTime(LocalTime.MAX)));
+ System.out.println(getWeek4First());
+ System.out.println(format(getWeek4First(LocalDate.parse("2018-02-10")).atTime(LocalTime.MIN)));
+ System.out.println(format(getWeek4Last(LocalDate.parse("2018-02-10")).atTime(LocalTime.MAX)));
- System.out.println(format(getYear4First().atTime(LocalTime.MIN)));
- System.out.println(format(getYear4Last().atTime(LocalTime.MAX)));
+ System.out.println(format(getMonth4First().atTime(LocalTime.MIN)));
+ System.out.println(format(getMonth4Last().atTime(LocalTime.MAX)));
- }*/
+ System.out.println(format(getYear4First().atTime(LocalTime.MIN)));
+ System.out.println(format(getYear4Last().atTime(LocalTime.MAX)));
+
+ }*/
}
diff --git a/src/main/java/com/yexuejc/base/util/ToUeProperty.java b/src/main/java/com/yexuejc/base/util/ToUeProperty.java
index 63d7fdd..4cac11e 100644
--- a/src/main/java/com/yexuejc/base/util/ToUeProperty.java
+++ b/src/main/java/com/yexuejc/base/util/ToUeProperty.java
@@ -2,18 +2,26 @@ package com.yexuejc.base.util;
import java.lang.annotation.*;
+/**
+ * json转换时的格式指定
+ *
+ * @author: yexuejc
+ * @date: 2021-01-31 12:48:29
+ */
@Target({ElementType.FIELD, ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ToUeProperty {
/**
* 字段名,默认该字段转下划线
+ *
* @return
*/
String value() default "";
/**
* 是否忽略该字段,默认false
+ *
* @return
*/
boolean ignore() default false;