Dart / Flutter default date format
我正在尝试格式化
目前,我可以显示整个
2018-10-08 16:08:37.464112
或者通过指定确切的格式,例如:
1 | DateFormat("dd.MM.yyyy").format(DateTime.now()) |
结果如下:
08.10.2018
我对这种解决方案的问题是,尽管这种格式在欧盟可能是可以接受的。 在例如 美国(和许多其他国家/地区)将它们用于其他日期格式,例如
10/08/2018
我的问题是:如何仅以当前语言环境的格式向用户返回日期(而不是时间)?
回答:
需要检索当前的语言环境并将其传递给format函数。 我正在使用自定义本地化类,但是使用开箱即用的解决方案,它看起来像这样:
1 | DateFormat.yMMMd(Localizations.localeOf(context)).format(result); |
我知道已经回答了这个问题,但是如果有人想使用实际的设备语言环境而不是硬编码的语言环境:
1 | DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format(result); |
重要的是,您需要在此处传递
如果要使用自定义日期格式,则需要基于要支持的所有语言环境创建自己的开关/案例。
您可以将语言环境传递给
1 | format = DateFormat.yMMMd("en_US"); |
也可以看看
- https://docs.flutter.io/flutter/intl/DateFormat-class.html
- https://flutter.io/tutorials/internationalization