如何将日期从英文数字转换为阿拉伯数字?Java代码实现咨询
实现阿拉伯数字日期输出的解决方案
当然可以!你想要的效果完全可以通过指定对应的Locale来实现,而且非常直接。
核心思路
SimpleDateFormat会根据你传入的Locale自动适配数字和日期格式,所以只需要给它指定一个使用阿拉伯数字的阿拉伯语地区Locale即可,比如沙特阿拉伯的Locale(ar-SA),它会默认使用阿拉伯-indic数字(也就是١٢٣这种形式)。
修改后的代码示例
// 给SimpleDateFormat传入沙特阿拉伯Locale,输出阿拉伯数字日期 frame.sigdate.setText(new SimpleDateFormat("yyyy/M/d", new Locale("ar", "SA")).format(new Date()));
如果你使用的是Java 8及以上版本,更推荐使用更现代的DateTimeFormatterAPI,用法类似:
import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.Locale; // Java 8+ 版本的实现 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/M/d", new Locale("ar", "SA")); frame.sigdate.setText(formatter.format(LocalDate.now()));
补充说明
- 如果你尝试
Locale.ARABIC(不带地区),部分环境下可能还是会输出拉丁数字(123),所以指定具体地区(比如SA代表沙特阿拉伯)能更稳定地得到阿拉伯数字格式。 - 不同阿拉伯语地区的Locale可能有细微差异,
ar-SA是比较通用的选择,如果你需要其他地区的格式,可以调整地区代码(比如ar-EG对应埃及)。
内容的提问来源于stack exchange,提问作者Sana'a Ala'a
相关产品推荐
相关产品推荐

