From 8d24d8de23dca16daf62d02075d389abe96f88b3 Mon Sep 17 00:00:00 2001 From: ZhouXY108 Date: Tue, 19 Nov 2024 21:59:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plusone/commons/util/DateTimeTools.java | 64 ++++++++++++++----- 1 file changed, 49 insertions(+), 15 deletions(-) diff --git a/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java b/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java index c2597fe..61ece2e 100644 --- a/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java +++ b/src/main/java/xyz/zhouxy/plusone/commons/util/DateTimeTools.java @@ -67,6 +67,8 @@ public class DateTimeTools { return DATE_TIME_FORMATTER_CACHE.getUnchecked(pattern); } + // #region - toString + /** * 将日期时间转换为指定格式的字符串 * @@ -103,6 +105,10 @@ public class DateTimeTools { return toString(pattern, dateTime); } + // #endregion + + // #region - nowStr + /** * 指定格式,返回当前时间戳对应的字符串 * @@ -124,7 +130,9 @@ public class DateTimeTools { return toString(pattern, Instant.now().atZone(zone)); } - // toDate + // #endregion + + // #region - toDate /** * 将时间戳转换为 {@link Date} 对象 @@ -189,7 +197,9 @@ public class DateTimeTools { return Date.from(ZonedDateTime.of(localDate, localTime, zone).toInstant()); } - // toInstant + // #endregion + + // #region - toInstant /** * 将时间戳转换为 {@link Instant} 对象 @@ -244,7 +254,9 @@ public class DateTimeTools { return ZonedDateTime.of(localDateTime, zone).toInstant(); } - // toZonedDateTime + // #endregion + + // #region - toZonedDateTime /** * 获取时间戳在指定时区的地区时间。 @@ -338,7 +350,9 @@ public class DateTimeTools { return ZonedDateTime.of(localDateTime, zone); } - // toLocalDateTime + // #endregion + + // #region - toLocalDateTime /** * 获取时间戳在指定时区的地区时间。 @@ -406,9 +420,11 @@ public class DateTimeTools { return LocalDateTime.ofInstant(zonedDateTime.toInstant(), zone); } + // #endregion + // ==================== - // toJodaInstant + // #region - toJodaInstant /** * 将 {@link java.time.Instant} 转换为 {@link org.joda.time.Instant} @@ -441,7 +457,9 @@ public class DateTimeTools { return toJodaInstant(java.time.ZonedDateTime.of(localDateTime, zone)); } - // toJavaInstant + // #endregion + + // #region - toJavaInstant /** * 将 {@link org.joda.time.Instant} 对象转换为 {@link java.time.Instant} 对象 @@ -479,7 +497,9 @@ public class DateTimeTools { return toJavaInstant(localDateTime.toDateTime(zone)); } - // toJodaDateTime + // #endregion + + // #region - toJodaDateTime /** * 将 Java 中表示日期时间的 {@link java.time.ZonedDateTime} 对象 @@ -506,7 +526,7 @@ public class DateTimeTools { public static org.joda.time.DateTime toJodaDateTime( java.time.LocalDateTime localDateTime, java.time.ZoneId zone) { - org.joda.time.DateTimeZone dateTimeZone = toJodaTime(zone); + org.joda.time.DateTimeZone dateTimeZone = toJodaZone(zone); return toJodaInstant(ZonedDateTime.of(localDateTime, zone).toInstant()).toDateTime(dateTimeZone); } @@ -520,11 +540,13 @@ public class DateTimeTools { public static org.joda.time.DateTime toJodaDateTime( java.time.Instant instant, java.time.ZoneId zone) { - org.joda.time.DateTimeZone dateTimeZone = toJodaTime(zone); + org.joda.time.DateTimeZone dateTimeZone = toJodaZone(zone); return toJodaInstant(instant).toDateTime(dateTimeZone); } - // toZonedDateTime + // #endregion + + // #region - toZonedDateTime /** * 将 joda-time 中带时区的日期时间,转换为 java.time 中带时区的日期时间 @@ -568,7 +590,9 @@ public class DateTimeTools { return toJavaInstant(instant).atZone(zone); } - // toJodaLocalDateTime + // #endregion + + // #region - toJodaLocalDateTime /** * 将 {@link java.time.LocalDateTime} 转换为 {@link org.joda.time.LocalDateTime} @@ -578,11 +602,13 @@ public class DateTimeTools { */ public static org.joda.time.LocalDateTime toJodaLocalDateTime(java.time.LocalDateTime localDateTime) { java.time.ZoneId javaZone = java.time.ZoneId.systemDefault(); - org.joda.time.DateTimeZone jodaZone = toJodaTime(javaZone); + org.joda.time.DateTimeZone jodaZone = toJodaZone(javaZone); return toJodaInstant(localDateTime, javaZone).toDateTime(jodaZone).toLocalDateTime(); } - // toJavaLocalDateTime + // #endregion + + // #region - toJavaLocalDateTime /** * 将 {@link org.joda.time.LocalDateTime} 转换为 {@link java.time.LocalDateTime} @@ -596,6 +622,10 @@ public class DateTimeTools { return toJavaInstant(localDateTime, jodaZone).atZone(javaZone).toLocalDateTime(); } + // #endregion + + // #region - ZoneId <--> DateTimeZone + /** * 转换 Java API 和 joda-time API 表示时区的对象 * @@ -612,11 +642,13 @@ public class DateTimeTools { * @param zone Java API 中表示时区的对象 * @return joda-time API 中表示时区的对象 */ - public static org.joda.time.DateTimeZone toJodaTime(java.time.ZoneId zone) { + public static org.joda.time.DateTimeZone toJodaZone(java.time.ZoneId zone) { return org.joda.time.DateTimeZone.forID(zone.getId()); } - // getQuarter + // #endregion + + // #region - YearQuarter & Quarter /** * 获取指定日期所在季度 @@ -679,6 +711,8 @@ public class DateTimeTools { return YearQuarter.of(date); } + // #endregion + /** * 私有构造方法,明确标识该常量类的作用。 */