dart-lang / i18n

A general mono-repo for Dart i18n and l10n packages.
BSD 3-Clause "New" or "Revised" License
63 stars 36 forks source link

Want to remove the suffix "日" when using DateFormat('d') in 'ja_JP'. #804

Closed Kurogoma939 closed 7 months ago

Kurogoma939 commented 7 months ago

Is your feature request related to a problem? Please describe. When Intl.defaultFormat = 'ja_JP and use DateFormat('d'). The result contain "日" .

Describe the solution you'd like I don't think I need the "日".

Describe alternatives you've considered

I couldn't think of an alternative, but if I want to put a"日" on it, use a custom format.

Additional context nothing.

Kurogoma939 commented 7 months ago

so I want to fix like this.

https://github.com/dart-lang/i18n/blob/main/pkgs/intl/lib/src/data/dates/patterns/ja.json

{"d":"d","E":"ccc","EEEE":"cccc","LLL":"M月","LLLL":"M月","M":"M","Md":"M/d","MEd":"M/d(EEE)","MMM":"M月","MMMd":"M月d日","MMMEd":"M月d日(EEE)","MMMM":"M月","MMMMd":"M月d日","MMMMEEEEd":"M月d日EEEE","QQQ":"QQQ","QQQQ":"QQQQ","y":"y","yM":"y/M","yMd":"y/M/d","yMEd":"y/M/d(EEE)","yMMM":"y年M月","yMMMd":"y年M月d日","yMMMEd":"y年M月d日(EEE)","yMMMM":"y年M月","yMMMMd":"y年M月d日","yMMMMEEEEd":"y年M月d日EEEE","yQQQ":"y/QQQ","yQQQQ":"y年QQQQ","H":"H","Hm":"H:mm","Hms":"H:mm:ss","j":"H時","jm":"H:mm","jms":"H:mm:ss","jmv":"H:mm v","jmz":"H:mm z","jz":"H時 z","m":"m","ms":"mm:ss","s":"s","v":"v","z":"z","zzzz":"zzzz","ZZZZ":"ZZZZ"}

I organized in table

key Before After
d d日 d
E ccc ccc
EEEE cccc cccc
LLL M月 M月
LLLL M月 M月
M M月 M
Md M/d M/d
MEd M/d(EEE) M/d(EEE)
MMM M月 M月
MMMd M月d日 M月d日
MMMEd M月d日(EEE) M月d日(EEE)
MMMM M月 M月
MMMMd M月d日 M月d日
MMMMEEEEd M月d日EEEE M月d日EEEE
QQQ QQQ QQQ
QQQQ QQQQ QQQQ
y y年 y
yM y/M y/M
yMd y/M/d y/M/d
yMEd y/M/d(EEE) y/M/d(EEE)
yMMM y年M月 y年M月
yMMMd y年M月d日 y年M月d日
yMMMEd y年M月d日(EEE) y年M月d日(EEE)
yMMMM y年M月 y年M月
yMMMMd y年M月d日 y年M月d日
yMMMMEEEEd y年M月d日EEEE y年M月d日EEEE
yQQQ y/QQQ y/QQQ
yQQQQ y年QQQQ y年QQQQ
H H時 H
Hm H:mm H:mm
Hms H:mm:ss H:mm:ss
j H時 H時
jm H:mm H:mm
jms H:mm:ss H:mm:ss
jmv H:mm v H:mm v
jmz H:mm z H:mm z
jz H時 z H時 z
m m m
ms mm:ss mm:ss
s s s
v v v
z z z
zzzz zzzz zzzz
ZZZZ ZZZZ ZZZZ
mosuem commented 7 months ago

The data for package:intl is generated from CLDR data, which does use this character. If you disagree, consider filing a bug with the CLDR repository here.

Kurogoma939 commented 7 months ago

Thank you @mosuem !!

Kurogoma939 commented 7 months ago

We found it quite difficult to make this fix. So I thought it would be easier to solve this problem by overwriting the defaultLocale as follows when the Locale of the device is ja_JP.

Intl.defaultLocale = 'en_US';
mosuem commented 7 months ago

You could also use initializeDateFormattingCustom to define and import custom formatting data.

Kurogoma939 commented 7 months ago

I didn't know the function! thanks!!