Skip to content

Commit

Permalink
supoort
Browse files Browse the repository at this point in the history
  • Loading branch information
looly committed Mar 28, 2024
1 parent eebec03 commit 94b2880
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
14 changes: 14 additions & 0 deletions hutool-core/src/main/java/cn/hutool/core/date/DateUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -817,6 +817,9 @@ public static DateTime parseTime(CharSequence timeString) {
* @since 3.1.1
*/
public static DateTime parseTimeToday(CharSequence timeString) {
// issue#I9C2D4 处理时分秒
timeString = StrUtil.replaceChars(timeString, "时分秒", ":");

timeString = StrUtil.format("{} {}", today(), timeString);
if (1 == StrUtil.count(timeString, ':')) {
// 时间格式为 HH:mm
Expand Down Expand Up @@ -930,6 +933,17 @@ public static DateTime parseCST(CharSequence cstString) {
return null;
}

// issue#I9C2D4
if(StrUtil.contains(cstString, ',')){
if(StrUtil.contains(cstString, "星期")){
return parse(cstString, FastDateFormat.getInstance(DatePattern.HTTP_DATETIME_PATTERN, TimeZone.getTimeZone("GMT"), Locale.CHINA));
}
return parse(cstString, DatePattern.HTTP_DATETIME_FORMAT);
}

if(StrUtil.contains(cstString, "星期")){
return parse(cstString, FastDateFormat.getInstance(DatePattern.JDK_DATETIME_PATTERN, TimeZone.getTimeZone("GMT"), Locale.CHINA));
}
return parse(cstString, DatePattern.JDK_DATETIME_FORMAT);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ public interface RegexPool {
/**
* 时间正则
*/
String TIME = "\\d{1,2}:\\d{1,2}(:\\d{1,2})?";
String TIME = "\\d{1,2}[:时]\\d{1,2}([:分]\\d{1,2})?秒?";
/**
* 中国车牌号码(兼容新能源车牌)
*/
Expand Down
34 changes: 34 additions & 0 deletions hutool-core/src/test/java/cn/hutool/core/date/IssueI9C2D4Test.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package cn.hutool.core.date;

import org.junit.Assert;
import org.junit.Test;

public class IssueI9C2D4Test {
@Test
public void parseHttpTest() {
String dateStr = "Thu, 28 Mar 2024 14:33:49 GMT";
final DateTime parse = DateUtil.parse(dateStr);
Assert.assertEquals("2024-03-28 14:33:49", parse.toString());
}

@Test
public void parseHttpTest2() {
String dateStr = "星期四, 28 三月 2024 14:33:49 GMT";
final DateTime parse = DateUtil.parse(dateStr);
Assert.assertEquals("2024-03-28 14:33:49", parse.toString());
}

@Test
public void parseTimeTest() {
String dateStr = "15时45分59秒";
final DateTime parse = DateUtil.parse(dateStr);
Assert.assertEquals("15:45:59", parse.toString().split(" ")[1]);
}

@Test
public void parseTimeTest2() {
String dateStr = "15:45:59";
final DateTime parse = DateUtil.parse(dateStr);
Assert.assertEquals("15:45:59", parse.toString().split(" ")[1]);
}
}

0 comments on commit 94b2880

Please sign in to comment.