Skip to content

Commit edefb14

Browse files
committed
expand Chinese time format
adapt to the prefix of year, month and day.
1 parent 6b43995 commit edefb14

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

parseany.go

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -397,6 +397,9 @@ iterRunes:
397397
}
398398
case '年':
399399
// Chinese Year
400+
p.yearlen = i - 2
401+
p.moi = i + 1
402+
p.setYear()
400403
p.stateDate = dateDigitChineseYear
401404
case ',':
402405
return nil, unknownErr(datestr)
@@ -709,9 +712,20 @@ iterRunes:
709712
// 2014年04月08日
710713
// weekday %Y年%m月%e日 %A %I:%M %p
711714
// 2013年07月18日 星期四 10:27 上午
712-
if r == ' ' {
715+
switch r {
716+
case '月':
717+
// month
718+
p.molen = i - p.moi - 2
719+
p.dayi = i + 1
720+
p.setMonth()
721+
case '日':
722+
// day
723+
p.daylen = i - p.dayi - 2
724+
p.houri = i + 1
725+
p.setDay()
726+
case ' ':
713727
p.stateDate = dateDigitChineseYearWs
714-
break
728+
break iterRunes
715729
}
716730
case dateDigitDot:
717731
// This is the 2nd period
@@ -1929,13 +1943,19 @@ iterRunes:
19291943
return p, nil
19301944

19311945
case dateDigitChineseYear:
1932-
// dateDigitChineseYear
1933-
// 2014年04月08日
1934-
p.format = []byte("2006年01月02日")
1946+
// 2014年04月08日
19351947
return p, nil
19361948

19371949
case dateDigitChineseYearWs:
1938-
p.format = []byte("2006年01月02日 15:04:05")
1950+
index := p.houri
1951+
for _, b := range []byte(" 15:04:05") {
1952+
if index >= len(p.format) {
1953+
break
1954+
}
1955+
p.format[index] = b
1956+
index++
1957+
}
1958+
// p.format = []byte("2006年01月02日 15:04:05")
19391959
return p, nil
19401960

19411961
case dateWeekdayComma:

parseany_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,11 @@ var testInputs = []dateTest{
169169
{in: "3 February 2013", out: "2013-02-03 00:00:00 +0000 UTC"},
170170
// Chinese 2014年04月18日
171171
{in: "2014年04月08日", out: "2014-04-08 00:00:00 +0000 UTC"},
172+
{in: "2014年4月8日", out: "2014-04-08 00:00:00 +0000 UTC"},
173+
{in: "2014年4月08日", out: "2014-04-08 00:00:00 +0000 UTC"},
172174
{in: "2014年04月08日 19:17:22", out: "2014-04-08 19:17:22 +0000 UTC"},
175+
{in: "2014年4月8日 19:17:22", out: "2014-04-08 19:17:22 +0000 UTC"},
176+
{in: "2014年04月8日 19:17:22", out: "2014-04-08 19:17:22 +0000 UTC"},
173177
// mm/dd/yyyy
174178
{in: "03/31/2014", out: "2014-03-31 00:00:00 +0000 UTC"},
175179
{in: "3/31/2014", out: "2014-03-31 00:00:00 +0000 UTC"},

0 commit comments

Comments
 (0)