diff --git a/src/generate/moment.ts b/src/generate/moment.ts index 46f077c85..6dc491d6e 100644 --- a/src/generate/moment.ts +++ b/src/generate/moment.ts @@ -95,7 +95,7 @@ const generateConfig: GenerateConfig = { let formatText = text; if (format.includes('wo') || format.includes('Wo')) { - format = format.replace(/wo/g, 'ww').replace(/Wo/g, 'WW'); + format = format.replace(/wo/g, 'w').replace(/Wo/g, 'W'); const matchFormat = format.match(/[-YyMmDdHhSsWwGg]+/g); const matchText = formatText.match(/[-\d]+/g); diff --git a/tests/generate.spec.tsx b/tests/generate.spec.tsx index 45b871281..ce0065092 100644 --- a/tests/generate.spec.tsx +++ b/tests/generate.spec.tsx @@ -64,16 +64,40 @@ describe('Picker.Generate', () => { }); describe('locale', () => { - it('parse', () => { - ['2000-01-02', '02/01/2000'].forEach(str => { - const date = generateConfig.locale.parse('en_US', str, [ - 'YYYY-MM-DD', - 'DD/MM/YYYY', - ]); + describe('parse', () => { + it('basic', () => { + ['2000-01-02', '02/01/2000'].forEach(str => { + const date = generateConfig.locale.parse('en_US', str, [ + 'YYYY-MM-DD', + 'DD/MM/YYYY', + ]); + + expect( + generateConfig.locale.format('en_US', date!, 'YYYY-MM-DD'), + ).toEqual('2000-01-02'); + }); + }); + it('week', () => { expect( - generateConfig.locale.format('en_US', date!, 'YYYY-MM-DD'), - ).toEqual('2000-01-02'); + generateConfig.locale.format( + 'en_US', + generateConfig.locale.parse('en_US', '2019-1st', [ + 'gggg-wo', + ])!, + 'gggg-wo', + ), + ).toEqual('2019-1st'); + + expect( + generateConfig.locale.format( + 'zh_CN', + generateConfig.locale.parse('zh_CN', '2019-45周', [ + 'gggg-wo', + ])!, + 'gggg-wo', + ), + ).toEqual('2019-45周'); }); });