更改日期格式器的语言环境

时间:2018-11-12 14:17:51

标签: dart flutter

am在我的应用程序中使用Date格式器显示一些日期..但我希望将此日期显示为阿拉伯语..所以我试图像这样更改格式器的语言环境:

var now = new DateTime.now();
var formatter = DateFormat.yMMMd("ar_SA");
String formatted = formatter.format(now);
print(formatted);

但无法正常工作..

如果我将其更改为此:

var now = new DateTime.now();
var formatter = DateFormat.yMMMd("en_US");
String formatted = formatter.format(now);
print(formatted);

会很好..但我希望日期以阿拉伯语显示..

如何实现这一目标?我希望日期是例如١١يناير٢٠١٨ ..该怎么做?

2 个答案:

答案 0 :(得分:1)

您需要使用initializeDateFormatting来获取正确的日期格式,如下所示:

initializeDateFormatting("ar_SA", null).then((_) {
      var now = DateTime.now();
      var formatter = DateFormat.yMMMd('ar_SA');
      print(formatter.locale);
      String formatted = formatter.format(now);
      print(formatted);
    });

或使用async-await,您可以执行以下操作:

await initializeDateFormatting("ar_SA", null);
var now = DateTime.now();
var formatter = DateFormat.yMMMd('ar_SA');
print(formatter.locale);
String formatted = formatter.format(now);
print(formatted);

这将为我带来以下输出:

ar
١٢ نوفمبر ٢٠١٨

答案 1 :(得分:1)

并只需确保导入本地数据

import 'package:intl/date_symbol_data_local.dart';