mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-07-21 15:09:48 +08:00
fix code
This commit is contained in:
@@ -379,7 +379,7 @@ public class ConvertTest {
|
||||
@Test
|
||||
public void toDateTest2(){
|
||||
final Date date = Convert.toDate("2021-01");
|
||||
Assertions.assertNull(date);
|
||||
Assertions.assertEquals("2021-01-01", DateUtil.formatDate(date));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -12,18 +12,18 @@
|
||||
|
||||
package org.dromara.hutool.core.convert;
|
||||
|
||||
import org.dromara.hutool.core.date.DateTime;
|
||||
import org.dromara.hutool.core.date.DateUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
public class ConvertToNumberTest {
|
||||
@Test
|
||||
public void dateToLongTest(){
|
||||
final DateTime date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final Date date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final Long dateLong = Convert.toLong(date);
|
||||
assert date != null;
|
||||
Assertions.assertEquals(date.getTime(), dateLong.longValue());
|
||||
@@ -31,7 +31,7 @@ public class ConvertToNumberTest {
|
||||
|
||||
@Test
|
||||
public void dateToIntTest(){
|
||||
final DateTime date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final Date date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final Integer dateInt = Convert.toInt(date);
|
||||
assert date != null;
|
||||
Assertions.assertEquals((int)date.getTime(), dateInt.intValue());
|
||||
@@ -39,7 +39,7 @@ public class ConvertToNumberTest {
|
||||
|
||||
@Test
|
||||
public void dateToAtomicLongTest(){
|
||||
final DateTime date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final Date date = DateUtil.parse("2020-05-17 12:32:00");
|
||||
final AtomicLong dateLong = Convert.convert(AtomicLong.class, date);
|
||||
assert date != null;
|
||||
Assertions.assertEquals(date.getTime(), dateLong.longValue());
|
||||
|
@@ -12,11 +12,12 @@
|
||||
|
||||
package org.dromara.hutool.core.data;
|
||||
|
||||
import org.dromara.hutool.core.date.DateTime;
|
||||
import org.dromara.hutool.core.date.DateUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 身份证单元测试
|
||||
*
|
||||
@@ -66,7 +67,7 @@ public class IdcardUtilTest {
|
||||
|
||||
@Test
|
||||
public void getAgeTest() {
|
||||
final DateTime date = DateUtil.parse("2017-04-10");
|
||||
final Date date = DateUtil.parse("2017-04-10");
|
||||
|
||||
final int age = IdcardUtil.getAge(ID_18, date);
|
||||
Assertions.assertEquals(age, 38);
|
||||
@@ -171,7 +172,7 @@ public class IdcardUtilTest {
|
||||
final String FOREIGN_ID_18 = "932682198501010017";
|
||||
Assertions.assertTrue(IdcardUtil.isValidCard(FOREIGN_ID_18));
|
||||
|
||||
final DateTime date = DateUtil.parse("2017-04-10");
|
||||
final Date date = DateUtil.parse("2017-04-10");
|
||||
Assertions.assertEquals(IdcardUtil.getAge(FOREIGN_ID_18, date), 32);
|
||||
|
||||
// 新版外国人永久居留身份证
|
||||
|
@@ -20,14 +20,15 @@ import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public class Issue3081Test {
|
||||
|
||||
@Test
|
||||
void dateRangeTest() {
|
||||
final DateTime start = DateUtil.parse("2023-01-01 00:00:00");
|
||||
final DateTime end = DateUtil.parse("2023-04-25 00:00:00");
|
||||
final Date start = DateUtil.parse("2023-01-01 00:00:00");
|
||||
final Date end = DateUtil.parse("2023-04-25 00:00:00");
|
||||
|
||||
final DateRange dateTimes = new DateRange(start, end, DateField.DAY_OF_MONTH, 30, true, true);
|
||||
|
||||
|
@@ -131,13 +131,13 @@ public class DateTimeTest {
|
||||
@Test
|
||||
public void monthTest() {
|
||||
//noinspection ConstantConditions
|
||||
final int month = DateUtil.parse("2017-07-01").month();
|
||||
final int month = DateUtil.date(DateUtil.parse("2017-07-01")).month();
|
||||
Assertions.assertEquals(6, month);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void weekOfYearTest() {
|
||||
final DateTime date = DateUtil.parse("2016-12-27");
|
||||
final DateTime date = DateUtil.date(DateUtil.parse("2016-12-27"));
|
||||
//noinspection ConstantConditions
|
||||
Assertions.assertEquals(2016, date.year());
|
||||
//跨年的周返回的总是1
|
||||
|
@@ -13,7 +13,6 @@
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
import org.dromara.hutool.core.date.format.FastDateFormat;
|
||||
import org.dromara.hutool.core.lang.Console;
|
||||
import org.dromara.hutool.core.util.RandomUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -120,7 +119,7 @@ public class DateUtilTest {
|
||||
|
||||
@Test
|
||||
public void endOfDayTest() {
|
||||
final DateTime parse = DateUtil.parse("2020-05-31 00:00:00");
|
||||
final Date parse = DateUtil.parse("2020-05-31 00:00:00");
|
||||
Assertions.assertEquals("2020-05-31 23:59:59", DateUtil.endOfDay(parse).toString());
|
||||
}
|
||||
|
||||
@@ -335,7 +334,7 @@ public class DateUtilTest {
|
||||
@Test
|
||||
public void weekOfYearTest() {
|
||||
// 第一周周日
|
||||
final int weekOfYear1 = DateUtil.weekOfYear(DateUtil.parse("2016-01-03"));
|
||||
final int weekOfYear1 = DateUtil.weekOfYear(DateUtil.date(DateUtil.parse("2016-01-03").getTime()));
|
||||
Assertions.assertEquals(1, weekOfYear1);
|
||||
|
||||
// 第二周周四
|
||||
@@ -461,7 +460,7 @@ public class DateUtilTest {
|
||||
final String str = "2020-06-28T02:14:13.000Z";
|
||||
final DateTime dateTime = DateUtil.parse(str);
|
||||
assert dateTime != null;
|
||||
Assertions.assertEquals("2020-06-28 02:14:13", dateTime.toString());
|
||||
Assertions.assertEquals("2020-06-28 10:14:13", dateTime.toString());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -496,8 +495,7 @@ public class DateUtilTest {
|
||||
@Test
|
||||
public void parseEmptyTest() {
|
||||
final String str = " ";
|
||||
final DateTime dateTime = DateUtil.parse(str);
|
||||
Assertions.assertNull(dateTime);
|
||||
Assertions.assertThrows(IllegalArgumentException.class, () -> DateUtil.parse(str));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -520,10 +518,10 @@ public class DateUtilTest {
|
||||
final String str = "2019-09-17T13:26:17.948Z";
|
||||
final DateTime dateTime = DateUtil.parse(str);
|
||||
assert dateTime != null;
|
||||
Assertions.assertEquals("2019-09-17 13:26:17", dateTime.toString());
|
||||
Assertions.assertEquals("2019-09-17 21:26:17", dateTime.toString());
|
||||
|
||||
final DateTime offset = DateUtil.offsetHour(dateTime, 8);
|
||||
Assertions.assertEquals("2019-09-17 21:26:17", offset.toString());
|
||||
Assertions.assertEquals("2019-09-18 05:26:17", offset.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -613,7 +611,7 @@ public class DateUtilTest {
|
||||
|
||||
// 默认使用Pattern对应的时区,即UTC时区
|
||||
String dateStr = Objects.requireNonNull(dt).toString();
|
||||
Assertions.assertEquals("2018-09-13 05:34:31", dateStr);
|
||||
Assertions.assertEquals("2018-09-13 13:34:31", dateStr);
|
||||
|
||||
// 使用当前(上海)时区
|
||||
dateStr = dt.toString(TimeZone.getTimeZone("GMT+8:00"));
|
||||
@@ -679,15 +677,15 @@ public class DateUtilTest {
|
||||
// 检查不同毫秒长度都可以正常匹配
|
||||
String utcTime = "2021-03-30T12:56:51.3Z";
|
||||
DateTime parse = DateUtil.parse(utcTime);
|
||||
Assertions.assertEquals("2021-03-30 12:56:51", Objects.requireNonNull(parse).toString());
|
||||
Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString());
|
||||
|
||||
utcTime = "2021-03-30T12:56:51.34Z";
|
||||
parse = DateUtil.parse(utcTime);
|
||||
Assertions.assertEquals("2021-03-30 12:56:51", Objects.requireNonNull(parse).toString());
|
||||
Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString());
|
||||
|
||||
utcTime = "2021-03-30T12:56:51.345Z";
|
||||
parse = DateUtil.parse(utcTime);
|
||||
Assertions.assertEquals("2021-03-30 12:56:51", Objects.requireNonNull(parse).toString());
|
||||
Assertions.assertEquals("2021-03-30 20:56:51", Objects.requireNonNull(parse).toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -701,17 +699,14 @@ public class DateUtilTest {
|
||||
|
||||
@Test
|
||||
public void parseCSTTest() {
|
||||
final String dateStr = "Wed Sep 16 11:26:23 CST 2009";
|
||||
final String dateStr = "Wed Sep 16 11:26:23 +0800 2009";
|
||||
|
||||
final SimpleDateFormat sdf = new SimpleDateFormat(DatePattern.JDK_DATETIME_PATTERN, Locale.US);
|
||||
// Asia/Shanghai是以地区命名的地区标准时,在中国叫CST,因此如果解析CST时不使用"Asia/Shanghai"而使用"GMT+08:00",会导致相差一个小时
|
||||
sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
||||
final DateTime parse = DateUtil.parse(dateStr, sdf);
|
||||
|
||||
DateTime dateTime = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals(parse, dateTime);
|
||||
|
||||
dateTime = DateUtil.parse(dateStr);
|
||||
final DateTime dateTime = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals(parse, dateTime);
|
||||
}
|
||||
|
||||
@@ -740,7 +735,7 @@ public class DateUtilTest {
|
||||
public void parseISOTest() {
|
||||
final String dateStr = "2020-04-23T02:31:00.000Z";
|
||||
final DateTime time = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("2020-04-23 02:31:00", Objects.requireNonNull(time).toString());
|
||||
Assertions.assertEquals("2020-04-23 10:31:00", Objects.requireNonNull(time).toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -1041,12 +1036,6 @@ public class DateUtilTest {
|
||||
Assertions.assertTrue(isSameWeek2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseTimeTest(){
|
||||
final DateTime dateTime = DateUtil.parse("12:23:34");
|
||||
Console.log(dateTime);
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public void isOverlapTest() {
|
||||
@@ -1114,7 +1103,7 @@ public class DateUtilTest {
|
||||
final String dateStr2 = "2023-02-07T00:02:16.12345-08:00";
|
||||
final DateTime dateTime2 = DateUtil.parse(dateStr2);
|
||||
Assertions.assertNotNull(dateTime2);
|
||||
Assertions.assertEquals("2023-02-07 00:02:16", dateTime2.toString());
|
||||
Assertions.assertEquals("2023-02-07 16:02:16", dateTime2.toString());
|
||||
|
||||
final String dateStr3 = "2021-03-17T06:31:33.9999";
|
||||
final DateTime dateTime3 = DateUtil.parse(dateStr3);
|
||||
@@ -1137,7 +1126,7 @@ public class DateUtilTest {
|
||||
void issueI7H34NTest() {
|
||||
final DateTime parse = DateUtil.parse("2019-10-22T09:56:03.000123Z");
|
||||
Assertions.assertNotNull(parse);
|
||||
Assertions.assertEquals("2019-10-22 09:56:03", parse.toString());
|
||||
Assertions.assertEquals("2019-10-22 17:56:03", parse.toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@@ -21,10 +21,10 @@ public class Issue2612Test {
|
||||
|
||||
@Test
|
||||
public void parseTest(){
|
||||
Assertions.assertEquals("2022-09-14 23:59:00",
|
||||
Assertions.assertEquals("2022-09-15 15:59:00",
|
||||
Objects.requireNonNull(DateUtil.parse("2022-09-14T23:59:00-08:00")).toString());
|
||||
|
||||
Assertions.assertEquals("2022-09-14 23:59:00",
|
||||
Assertions.assertEquals("2022-09-15 15:59:00",
|
||||
Objects.requireNonNull(DateUtil.parse("2022-09-14T23:59:00-0800")).toString());
|
||||
}
|
||||
}
|
||||
|
@@ -12,14 +12,19 @@
|
||||
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
import org.dromara.hutool.core.lang.Console;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class IssueI7QI6RTest {
|
||||
|
||||
// TODO 2023-8-4-1解析错误解决
|
||||
@Test
|
||||
@Disabled
|
||||
void parseTest() {
|
||||
Assertions.assertThrows(DateException.class, ()-> DateUtil.parse("2023-8-4-1"));
|
||||
Assertions.assertThrows(DateException.class, ()-> DateUtil.parse("2023-8-4 1"));
|
||||
Console.log(DateUtil.parse("2023-8-4-1"));
|
||||
Assertions.assertThrows(DateException.class, () -> DateUtil.parse("2023-8-4-1"));
|
||||
Assertions.assertThrows(DateException.class, () -> DateUtil.parse("2023-8-4 1"));
|
||||
}
|
||||
}
|
||||
|
@@ -21,6 +21,6 @@ public class IssueI82Y1LTest {
|
||||
@Test
|
||||
public void parseTest() {
|
||||
final String dt1 = "2023-09-14T05:00:03.648519Z";
|
||||
Assertions.assertEquals("2023-09-14 05:10:51", Objects.requireNonNull(DateUtil.parse(dt1)).toString());
|
||||
Assertions.assertEquals("2023-09-14 13:00:03", Objects.requireNonNull(DateUtil.parse(dt1)).toString());
|
||||
}
|
||||
}
|
||||
|
@@ -1,14 +1,14 @@
|
||||
package org.dromara.hutool.core.date;
|
||||
|
||||
import org.dromara.hutool.core.lang.Console;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
public class IssueI8IUTBTest {
|
||||
@Test
|
||||
@Disabled
|
||||
void parseTest() {
|
||||
final DateTime parse = DateUtil.parse("May 8, 2009 5:57:51 PM");
|
||||
final Date parse = DateUtil.parse("May 8, 2009 5:57:51 PM");
|
||||
Console.log(parse);
|
||||
}
|
||||
}
|
||||
|
@@ -3,34 +3,35 @@ package org.dromara.hutool.core.date;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Objects;
|
||||
|
||||
public class IssueI9C2D4Test {
|
||||
@Test
|
||||
public void parseHttpTest() {
|
||||
final String dateStr = "Thu, 28 Mar 2024 14:33:49 GMT";
|
||||
final DateTime parse = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("2024-03-28 14:33:49", Objects.requireNonNull(parse).toString());
|
||||
final Date parse = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("2024-03-28 22:33:49", Objects.requireNonNull(parse).toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseHttpTest2() {
|
||||
final String dateStr = "星期四, 28 三月 2024 14:33:49 GMT";
|
||||
final DateTime parse = DateUtil.parse(dateStr);
|
||||
final Date parse = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("2024-03-28 14:33:49", Objects.requireNonNull(parse).toString());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseTimeTest() {
|
||||
final String dateStr = "15时45分59秒";
|
||||
final DateTime parse = DateUtil.parse(dateStr);
|
||||
final Date parse = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("15:45:59", Objects.requireNonNull(parse).toString().split(" ")[1]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void parseTimeTest2() {
|
||||
final String dateStr = "15:45:59";
|
||||
final DateTime parse = DateUtil.parse(dateStr);
|
||||
final Date parse = DateUtil.parse(dateStr);
|
||||
Assertions.assertEquals("15:45:59", Objects.requireNonNull(parse).toString().split(" ")[1]);
|
||||
}
|
||||
}
|
||||
|
@@ -19,6 +19,7 @@ import org.junit.jupiter.api.Test;
|
||||
import java.time.*;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -36,18 +37,17 @@ public class TimeUtilTest {
|
||||
@Test
|
||||
public void ofTest() {
|
||||
final String dateStr = "2020-01-23T12:23:56";
|
||||
final DateTime dt = DateUtil.parse(dateStr);
|
||||
final Date dt = DateUtil.parse(dateStr);
|
||||
|
||||
final LocalDateTime of = TimeUtil.of(dt);
|
||||
Assertions.assertNotNull(of);
|
||||
assertEquals(dateStr, of.toString());
|
||||
}
|
||||
|
||||
@SuppressWarnings("DataFlowIssue")
|
||||
@Test
|
||||
public void ofUTCTest() {
|
||||
final String dateStr = "2020-01-23T12:23:56Z";
|
||||
final DateTime dt = DateUtil.parse(dateStr);
|
||||
final Date dt = DateUtil.parse(dateStr);
|
||||
|
||||
final LocalDateTime of = TimeUtil.of(dt);
|
||||
final LocalDateTime of2 = TimeUtil.ofUTC(dt.getTime());
|
||||
|
@@ -17,6 +17,9 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.time.ZoneId;
|
||||
import java.util.TimeZone;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public class ZoneUtilTest {
|
||||
|
||||
@@ -25,4 +28,53 @@ public class ZoneUtilTest {
|
||||
Assertions.assertEquals(ZoneId.systemDefault(), ZoneUtil.toZoneId(null));
|
||||
Assertions.assertEquals(TimeZone.getDefault(), ZoneUtil.toTimeZone(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTimeZoneByOffsetReturnsNonNull() {
|
||||
// Arrange
|
||||
final int rawOffset = 8; // Example offset, you may adjust for different cases
|
||||
final TimeUnit timeUnit = TimeUnit.HOURS;
|
||||
|
||||
// Act
|
||||
final TimeZone result = ZoneUtil.getTimeZoneByOffset(rawOffset, timeUnit);
|
||||
|
||||
// Assert
|
||||
assertNotNull(result, "Expected non-null TimeZone for valid offset and unit");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTimeZoneByOffsetWithInvalidOffsetReturnsNull() {
|
||||
// Arrange
|
||||
final int rawOffset = 999; // Unlikely valid offset to test edge case
|
||||
final TimeUnit timeUnit = TimeUnit.HOURS;
|
||||
|
||||
// Act
|
||||
final TimeZone result = ZoneUtil.getTimeZoneByOffset(rawOffset, timeUnit);
|
||||
|
||||
// Assert
|
||||
assertNull(result, "Expected null TimeZone for invalid offset");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetTimeZoneByOffsetWithNullTimeUnitThrowsException() {
|
||||
// Arrange
|
||||
final int rawOffset = 8;
|
||||
final TimeUnit timeUnit = null; // Null unit to simulate error condition
|
||||
|
||||
// Act & Assert
|
||||
final NullPointerException thrown = assertThrows(
|
||||
NullPointerException.class,
|
||||
() -> ZoneUtil.getTimeZoneByOffset(rawOffset, timeUnit),
|
||||
"Expected NullPointerException for null TimeUnit"
|
||||
);
|
||||
assertTrue(thrown.getMessage().contains("timeUnit"), "Exception message should mention the null parameter");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAvailableIDWithInvalidOffset() {
|
||||
// Test with an invalid offset that should result in null or an exception.
|
||||
// Assuming that an offset of 25 hours is invalid and should return null.
|
||||
final String result = ZoneUtil.getAvailableID(25, TimeUnit.HOURS);
|
||||
assertNull(result, "Expected null for invalid offset of 25 hours");
|
||||
}
|
||||
}
|
||||
|
@@ -12,6 +12,69 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
*/
|
||||
public class GlobalRegexDateParserTest {
|
||||
|
||||
@Test
|
||||
void parseYearMonthDaySplitByDashedTest() {
|
||||
assertParse("2013-02-03 00:00:00", "2013-Feb-03");
|
||||
assertParse("2013-02-03 00:00:00", "2013-02-03");
|
||||
assertParse("2013-02-03 00:00:00", "2013-2-03");
|
||||
assertParse("2013-02-03 00:00:00", "2013-2-3");
|
||||
assertParse("2014-04-26 00:00:00", "2014-04-26");
|
||||
assertParse("2014-04-01 00:00:00", "2014-04");
|
||||
|
||||
assertParse("2013-04-01 22:43:00", "2013-04-01 22:43");
|
||||
assertParse("2013-04-01 22:43:22", "2013-04-01 22:43:22");
|
||||
assertParse("2014-04-26 17:24:37", "2014-04-26 17:24:37.3186369");
|
||||
assertParse("2012-08-03 18:31:59", "2012-08-03 18:31:59.257000000");
|
||||
assertParse("2014-04-26 17:24:37", "2014-04-26 17:24:37.123");
|
||||
assertParse("2014-12-16 14:20:00", "2014-12-16 06:20:00 UTC");
|
||||
assertParse("2014-12-16 14:20:00", "2014-12-16 06:20:00 GMT");
|
||||
assertParse("2014-04-26 17:24:37", "2014-04-26 05:24:37 PM");
|
||||
assertParse("2014-04-26 13:13:43", "2014-04-26 13:13:43 +0800");
|
||||
assertParse("2014-04-26 12:13:44", "2014-04-26 13:13:44 +09:00");
|
||||
assertParse("2014-04-26 13:13:43", "2014-04-26 13:13:43 +0800 +08");
|
||||
assertParse("2012-08-04 02:31:59", "2012-08-03 18:31:59.257000000 +0000 UTC");
|
||||
assertParse("2015-10-01 02:48:56", "2015-09-30 18:48:56.35272715 +0000 UTC");
|
||||
assertParse("2015-02-18 08:12:00", "2015-02-18 00:12:00 +0000 GMT");
|
||||
assertParse("2015-02-18 08:12:00", "2015-02-18 00:12:00 +0000 UTC");
|
||||
assertParse("2017-07-19 11:21:51", "2017-07-19 03:21:51+00:00");
|
||||
assertParse("2014-05-11 08:20:13", "2014-05-11 08:20:13,787");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseYearMonthDaySplitByDashedWithMaskTest() {
|
||||
assertParse("2015-02-08 08:02:00", "2015-02-08 03:02:00 +0300 MSK m=+0.000000001");
|
||||
assertParse("2015-02-08 08:02:00", "2015-02-08 03:02:00.001 +0300 MSK m=+0.000000001");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseYearMonthDaySplitBySlashTest() {
|
||||
assertParse("2014-03-31 00:00:00", "2014/3/31");
|
||||
assertParse("2014-03-31 00:00:00", "2014/03/31");
|
||||
assertParse("2014-04-08 22:05:00", "2014/4/8 22:05");
|
||||
assertParse("2014-04-08 22:05:00", "2014/04/08 22:05");
|
||||
assertParse("2014-04-02 03:00:51", "2014/04/2 03:00:51");
|
||||
assertParse("2014-04-02 03:00:51", "2014/4/02 03:00:51");
|
||||
assertParse("2012-03-19 10:11:59", "2012/03/19 10:11:59");
|
||||
assertParse("2012-03-19 10:11:59", "2012/03/19 10:11:59.3186369");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseYearMonthDaySplitByChineseTest() {
|
||||
assertParse("2014-04-08 00:00:00", "2014年04月08日");
|
||||
assertParse("2017-02-01 12:23:45", "2017年02月01日 12时23分45秒");
|
||||
assertParse("2017-02-01 12:23:45", "2017年02月01日 12:23:45");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseYearMonthDaySplitByTTest() {
|
||||
assertParse("2006-01-02 23:04:05", "2006-01-02T15:04:05+0000");
|
||||
assertParse("2009-08-13 13:15:09", "2009-08-12T22:15:09-07:00");
|
||||
assertParse("2009-08-12 22:15:09", "2009-08-12T22:15:09+0800");
|
||||
assertParse("2009-08-12 22:15:09", "2009-08-12T22:15:09+08");
|
||||
assertParse("2009-08-12 22:15:09", "2009-08-12T22:15:09");
|
||||
assertParse("2009-08-13 06:15:09", "2009-08-12T22:15:09Z");// Z表示UTC时间
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseMonthDayYearTest() {
|
||||
assertParse("1970-10-07 00:00:00", "oct 7, 1970");
|
||||
@@ -21,6 +84,7 @@ public class GlobalRegexDateParserTest {
|
||||
assertParse("1970-10-07 00:00:00", "October 7, 1970");
|
||||
assertParse("1970-10-07 00:00:00", "October 7th, 1970");
|
||||
assertParse("1970-10-07 00:00:00", "October 7th, 1970");
|
||||
assertParse("1970-05-07 00:00:00", "May 7th, 1970");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -51,15 +115,15 @@ public class GlobalRegexDateParserTest {
|
||||
@Test
|
||||
void parseWeekMonthDayTimeYearTest() {
|
||||
assertParse("2006-01-02 15:04:05", "Mon Jan 2 15:04:05 2006");
|
||||
assertParse("2006-01-02 15:04:05", "Mon Jan 2 15:04:05 MST 2006");
|
||||
assertParse("2006-01-02 23:04:05", "Mon Jan 2 15:04:05 MST 2006");
|
||||
assertParse("2006-01-03 06:04:05", "Mon Jan 02 15:04:05 -0700 2006");
|
||||
assertParse("2015-08-10 22:44:11", "Mon Aug 10 15:44:11 UTC+0100 2015");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseWeekDayMonthYearTimeTest() {
|
||||
assertParse("2006-01-02 15:04:05", "Monday, 02-Jan-06 15:04:05 MST");
|
||||
assertParse("2006-01-02 15:04:05", "Mon, 02 Jan 2006 15:04:05 MST");
|
||||
assertParse("2006-01-02 23:04:05", "Monday, 02-Jan-06 15:04:05 MST");
|
||||
assertParse("2006-01-02 23:04:05", "Mon, 02 Jan 2006 15:04:05 MST");
|
||||
assertParse("2017-07-11 22:28:13", "Tue, 11 Jul 2017 16:28:13 +0200");
|
||||
assertParse("2017-07-11 22:28:13", "Tue, 11 Jul 2017 16:28:13 +0200 (CEST)");
|
||||
assertParse("2006-01-03 06:04:05", "Mon, 02 Jan 2006 15:04:05 -0700");
|
||||
@@ -67,7 +131,7 @@ public class GlobalRegexDateParserTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseDayMonthYear() {
|
||||
void parseDayMonthYearTest() {
|
||||
assertParse("2006-02-12 19:17:00", "12 Feb 2006, 19:17");
|
||||
assertParse("2006-02-12 19:17:00", "12 Feb 2006 19:17");
|
||||
assertParse("1970-10-07 00:00:00", "7 oct 70");
|
||||
@@ -76,6 +140,45 @@ public class GlobalRegexDateParserTest {
|
||||
assertParse("2013-07-01 00:00:00", "1 July 2013");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parseDayOrMonthTest() {
|
||||
assertParse("2014-03-03 00:00:00", "3.3.2014");
|
||||
// 自动识别月在前
|
||||
assertParse("2014-03-31 00:00:00", "3/31/2014");
|
||||
assertParse("2014-03-31 00:00:00", "3.31.2014");
|
||||
assertParse("2014-03-31 00:00:00", "03/31/2014");
|
||||
assertParse("2014-03-31 00:00:00", "03.31.2014");
|
||||
assertParse("2014-08-04 22:05:00", "4/8/2014 22:05");
|
||||
assertParse("2014-08-04 22:05:00", "4/8/2014 22:05");
|
||||
assertParse("2014-08-04 22:05:00", "04/08/2014 22:05");
|
||||
assertParse("2014-02-04 03:00:51", "04/2/2014 03:00:51");
|
||||
assertParse("1965-08-08 00:00:00", "8/8/1965 12:00:00 AM");
|
||||
assertParse("1965-08-08 12:00:00", "8/8/1965 12:00:00 PM");
|
||||
assertParse("1965-08-08 13:00:00", "8/8/1965 01:00 PM");
|
||||
assertParse("1965-08-08 13:00:00", "8/8/1965 1:00 PM");
|
||||
assertParse("1965-08-08 00:00:00", "8/8/1965 12:00 AM");
|
||||
assertParse("2014-02-04 03:00:51", "4/02/2014 03:00:51");
|
||||
assertParse("2012-03-19 10:11:59", "03/19/2012 10:11:59");
|
||||
assertParse("2012-03-19 10:11:59", "03/19/2012 10:11:59.3186369");
|
||||
}
|
||||
|
||||
@Test
|
||||
void parsePureNumberTest() {
|
||||
assertParse("2014-01-01 00:00:00", "2014");
|
||||
assertParse("2014-06-01 00:00:00", "201406");
|
||||
assertParse("2014-06-02 00:00:00", "20140602");
|
||||
assertParse("2014-07-22 10:52:03", "20140722105203");
|
||||
|
||||
// unixtime(10)
|
||||
assertParse("2012-03-19 18:11:59", "1332151919");
|
||||
// millisecond(13)
|
||||
assertParse("2013-11-12 08:32:47", "1384216367189");
|
||||
// microsecond(16)
|
||||
assertParse("2013-11-12 08:32:47", "1384216367111222");
|
||||
// nanosecond(19)
|
||||
assertParse("2013-11-12 08:32:47", "1384216367111222333");
|
||||
}
|
||||
|
||||
private static void assertParse(final String dateStr, final String dateStrToParse) {
|
||||
final Date date = GlobalRegexDateParser.parse(dateStrToParse);
|
||||
assertEquals(dateStr, DateUtil.date(date).toString());
|
||||
|
@@ -20,6 +20,7 @@ import org.dromara.hutool.core.text.StrUtil;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
|
||||
@@ -32,8 +33,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void dateRangeTest() {
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-02");
|
||||
final DateTime start = DateUtil.parseDateTime("2017-01-01");
|
||||
final DateTime end = DateUtil.parseDateTime("2017-01-02");
|
||||
|
||||
final Range<DateTime> range = new Range<>(start, end, (current, end1, index) -> {
|
||||
if (current.isAfterOrEquals(end1)) {
|
||||
@@ -51,8 +52,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void dateRangeFuncTest() {
|
||||
final DateTime start = DateUtil.parse("2021-01-01");
|
||||
final DateTime end = DateUtil.parse("2021-01-03");
|
||||
final Date start = DateUtil.parse("2021-01-01");
|
||||
final Date end = DateUtil.parse("2021-01-03");
|
||||
|
||||
final List<Integer> dayOfMonthList = DateUtil.rangeFunc(start, end, DateField.DAY_OF_YEAR, a -> DateTime.of(a).dayOfMonth());
|
||||
Assertions.assertArrayEquals(dayOfMonthList.toArray(new Integer[]{}), new Integer[]{1, 2, 3});
|
||||
@@ -63,8 +64,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void dateRangeConsumeTest() {
|
||||
final DateTime start = DateUtil.parse("2021-01-01");
|
||||
final DateTime end = DateUtil.parse("2021-01-03");
|
||||
final Date start = DateUtil.parse("2021-01-01");
|
||||
final Date end = DateUtil.parse("2021-01-03");
|
||||
|
||||
final StringBuilder sb = new StringBuilder();
|
||||
DateUtil.rangeConsume(start, end, DateField.DAY_OF_YEAR, a -> sb.append(DateTime.of(a).dayOfMonth()).append("#"));
|
||||
@@ -77,8 +78,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void dateRangeTest2() {
|
||||
final DateTime start = DateUtil.parse("2021-01-31");
|
||||
final DateTime end = DateUtil.parse("2021-03-31");
|
||||
final Date start = DateUtil.parse("2021-01-31");
|
||||
final Date end = DateUtil.parse("2021-03-31");
|
||||
|
||||
final DateRange range = DateUtil.range(start, end, DateField.MONTH);
|
||||
|
||||
@@ -102,8 +103,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void rangeByStepTest() {
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-03");
|
||||
final Date start = DateUtil.parse("2017-01-01");
|
||||
final Date end = DateUtil.parse("2017-01-03");
|
||||
|
||||
// 测试包含开始和结束情况下步进为1的情况
|
||||
DateRange range = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
|
||||
@@ -124,8 +125,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void rangeDayOfYearTest() {
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-05");
|
||||
final Date start = DateUtil.parse("2017-01-01");
|
||||
final Date end = DateUtil.parse("2017-01-05");
|
||||
|
||||
// 测试不包含开始结束时间的情况
|
||||
final DateRange range = new DateRange(start, end, DateField.DAY_OF_YEAR, 1, false, false);
|
||||
@@ -141,8 +142,8 @@ public class RangeTest {
|
||||
|
||||
@Test
|
||||
public void rangeToListTest() {
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-31");
|
||||
final Date start = DateUtil.parse("2017-01-01");
|
||||
final Date end = DateUtil.parse("2017-01-31");
|
||||
|
||||
final List<DateTime> rangeToList = DateUtil.rangeToList(start, end, DateField.DAY_OF_YEAR);
|
||||
Assertions.assertEquals(DateUtil.parse("2017-01-01"), rangeToList.get(0));
|
||||
@@ -153,12 +154,12 @@ public class RangeTest {
|
||||
@Test
|
||||
public void rangeContains() {
|
||||
// 开始区间
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-31");
|
||||
final Date start = DateUtil.parse("2017-01-01");
|
||||
final Date end = DateUtil.parse("2017-01-31");
|
||||
final DateRange startRange = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
|
||||
// 结束区间
|
||||
final DateTime start1 = DateUtil.parse("2017-01-31");
|
||||
final DateTime end1 = DateUtil.parse("2017-02-02");
|
||||
final Date start1 = DateUtil.parse("2017-01-31");
|
||||
final Date end1 = DateUtil.parse("2017-02-02");
|
||||
final DateRange endRange = DateUtil.range(start1, end1, DateField.DAY_OF_YEAR);
|
||||
// 交集
|
||||
final List<DateTime> dateTimes = DateUtil.rangeContains(startRange, endRange);
|
||||
@@ -169,12 +170,12 @@ public class RangeTest {
|
||||
@Test
|
||||
public void rangeNotContains() {
|
||||
// 开始区间
|
||||
final DateTime start = DateUtil.parse("2017-01-01");
|
||||
final DateTime end = DateUtil.parse("2017-01-30");
|
||||
final Date start = DateUtil.parse("2017-01-01");
|
||||
final Date end = DateUtil.parse("2017-01-30");
|
||||
final DateRange startRange = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
|
||||
// 结束区间
|
||||
final DateTime start1 = DateUtil.parse("2017-01-01");
|
||||
final DateTime end1 = DateUtil.parse("2017-01-31");
|
||||
final Date start1 = DateUtil.parse("2017-01-01");
|
||||
final Date end1 = DateUtil.parse("2017-01-31");
|
||||
final DateRange endRange = DateUtil.range(start1, end1, DateField.DAY_OF_YEAR);
|
||||
// 差集
|
||||
final List<DateTime> dateTimes1 = DateUtil.rangeNotContains(startRange, endRange);
|
||||
|
Reference in New Issue
Block a user