在C#中,我们有CultureInfo,它影响ToString()对日期和数字的工作方式 例如。您可以通过执行以下操作来设置CurrentCulture:
Thread.CurrentThread.CurrentCulture = new CultureInfo("pl-PL");;
dart中是否有与上述相同的内容?
编辑:
答案 0 :(得分:2)
是的,根据之前的条目,Intl库就是您想要的。您可以设置默认语言环境,或使用withLocale方法在函数中设置它。由线程设置它不起作用,因为没有线程。另一个主要区别在于,由于这些都已下载到浏览器中,因此您不会自动拥有所有可用的区域设置数据,但必须通过异步初始化步骤来加载数据。这可能会很快转换为使用新的延迟加载功能。
此外,语言环境不会影响系统toString()操作,而是必须使用DateFormat对象来打印日期。由于它仍在进行中,因此NumberFormat对于语言环境仍无法正常工作,但很快就会正常工作。
答案 1 :(得分:2)
intl
库会为您提供此功能,但不会影响toString()
的行为。
以下是一个例子:
作为依赖项添加到pubspec.yaml
:
dependencies:
intl: any # You might specify some version instead of _any_
然后是代码示例:
import 'package:intl/intl.dart';
import 'package:intl/date_symbol_data_local.dart';
main() {
initializeDateFormatting("en_US", null).then((_) {
var formatter = new DateFormat.yMd().add_Hm();
print(formatter.format(new DateTime.now()));
});
}
输出如下:
07/10/1996 12:08 PM
答案 2 :(得分:0)
http://api.dartlang.org/docs/releases/latest/intl/Intl.html
从页面: Intl类为国际化相关任务提供了一个公共入口点。