From 5b7f34b6358713aff69203e783945ccc42e1e5d4 Mon Sep 17 00:00:00 2001 From: duandazhi Date: Tue, 16 Mar 2021 23:21:19 +0800 Subject: [PATCH] =?UTF-8?q?DateUtils8Transform=E4=BA=92=E8=BD=AC=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB=20=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hutool/core/date/DateUtils8Transform.java | 13 +- .../core/date/DateUtils8TransformTest.java | 114 ++++++++++++++++++ 2 files changed, 123 insertions(+), 4 deletions(-) create mode 100644 hutool-core/src/test/java/cn/hutool/core/date/DateUtils8TransformTest.java diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateUtils8Transform.java b/hutool-core/src/main/java/cn/hutool/core/date/DateUtils8Transform.java index 3c6cba2f1..928222710 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/DateUtils8Transform.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/DateUtils8Transform.java @@ -53,8 +53,7 @@ public class DateUtils8Transform { * 04. java.time.LocalDateTime --> java.util.Date */ public static Date java8Date2Date(LocalDateTime localDateTime) { - ZoneId zone = ZoneId.systemDefault(); - Instant instant = localDateTime.atZone(zone).toInstant(); + Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); return Date.from(instant); } @@ -80,7 +79,7 @@ public class DateUtils8Transform { } /** - * java.sql.Date与java.util.Date的转化 + * 07. java.sql.Date与java.util.Date的转化 * * @param sqlDate * @return @@ -89,7 +88,13 @@ public class DateUtils8Transform { return new Date(sqlDate.getTime()); } - public static Date date2SqlDate(Date date) { + /** + * 08. java.util.Date与java.sql.Date的转化 + * + * @param date + * @return + */ + public static java.sql.Date date2SqlDate(Date date) { return new java.sql.Date(new Date().getTime()); } } diff --git a/hutool-core/src/test/java/cn/hutool/core/date/DateUtils8TransformTest.java b/hutool-core/src/test/java/cn/hutool/core/date/DateUtils8TransformTest.java new file mode 100644 index 000000000..30d85fbb1 --- /dev/null +++ b/hutool-core/src/test/java/cn/hutool/core/date/DateUtils8TransformTest.java @@ -0,0 +1,114 @@ +package cn.hutool.core.date; + +import org.junit.Assert; +import org.junit.Test; + +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.util.Date; + +import static cn.hutool.core.date.DatePattern.*; + +/** + * DateUtils8Transform LocalDate和Date的互换 测试用例 + * + * @author dazer + * @date 2021/3/16 22:23 + */ +public class DateUtils8TransformTest { + + /** + * 01. java.util.Date --> java.time.LocalDateTime + */ + @Test + public void date2Java8DateTimeTest() { + String str = "2021-03-16 23:59:59"; + DateTime nowDateTime = DateTime.of(str, NORM_DATETIME_PATTERN); + LocalDateTime now = DateUtils8Transform.date2Java8DateTime(nowDateTime); + Assert.assertEquals(LocalDateTimeUtil.format(now, DatePattern.NORM_DATETIME_FORMATTER), str); + } + + /** + * 02. java.util.Date --> java.time.LocalDate + */ + @Test + public void date2Java8DateTest() { + String str = "2021-03-16"; + DateTime nowDateTime = DateTime.of(str, NORM_DATE_PATTERN); + LocalDate now = DateUtils8Transform.date2Java8Date(nowDateTime); + Assert.assertEquals(LocalDateTimeUtil.format(now, DatePattern.NORM_DATE_PATTERN), str); + } + + /** + * 03. java.util.Date --> java.time.LocalTime + */ + @Test + public void date2Java8TimeTest() { + String str = "23:59:59"; + DateTime nowDateTime = DateTime.of(str, NORM_TIME_PATTERN); + LocalTime now = DateUtils8Transform.date2Java8Time(nowDateTime); + now.format(DateTimeFormatter.ofPattern(NORM_TIME_PATTERN)); + Assert.assertEquals(now.format(DateTimeFormatter.ofPattern(NORM_TIME_PATTERN)), str); + } + + + /** + * 04. java.time.LocalDateTime --> java.util.Date + */ + @Test + public void java8Date2DateTest1() { + String str = "2021-03-16 23:59:59"; + LocalDateTime now = LocalDateTimeUtil.parse(str, NORM_DATETIME_FORMATTER); + Date nowDate = DateUtils8Transform.java8Date2Date(now); + String temp1 = DateUtil.format(nowDate, NORM_DATE_FORMAT); + Assert.assertEquals(LocalDateTimeUtil.of(nowDate), now); + } + + + /** + * 05. java.time.LocalDate --> java.util.Date + */ + @Test + public void java8Date2DateTest2() { + String str = "2021-03-16"; + LocalDate now = LocalDateTimeUtil.parseDate(str); + Date nowDate = DateUtils8Transform.java8Date2Date(now); + String temp1 = DateUtil.format(nowDate, NORM_DATE_FORMAT); + Assert.assertEquals(temp1, str); + } + + /** + * 06. java.time.LocalTime --> java.util.Date + */ + @Test + public void java8Date2DateTest() { + String str = "23:59:59"; + LocalTime now = LocalDateTimeUtil.parse(str, DateTimeFormatter.ofPattern(NORM_TIME_PATTERN)).toLocalTime(); + Date nowDate = DateUtils8Transform.java8Date2Date(now); + String temp1 = DateUtil.format(nowDate, NORM_TIME_PATTERN); + Assert.assertEquals(temp1, str); + } + + /** + * java.sql.Date与java.util.Date的转化 + * + * @return + */ + @Test + public void sqlDate2DateTest() { + String str = "2021-03-16"; + LocalDate now = LocalDateTimeUtil.parseDate(str); + Date date = DateUtils8Transform.sqlDate2Date(java.sql.Date.valueOf(now)); + Assert.assertEquals(new DateTime(date).toDateStr(), str); + } + + /** + * 08. java.util.Date与java.sql.Date的转化 + */ + @Test + public void date2SqlDateTest() { + String str = "2021-03-16"; + java.sql.Date date = DateUtils8Transform.date2SqlDate(DateTime.of(str, NORM_DATE_PATTERN)); + Assert.assertEquals(new DateTime(date).toDateStr(), str); + } +}