datetime - Dart/Flutter 默认日期格式

我正在尝试格式化 DateTime 结果并在用户当前的设备区域设置中显示给用户。

目前我可以显示整个 DateTime,如下所示:

2018-10-08 16:08:37.464112

或者通过像这样指定确切的格式:

DateFormat("dd.MM.yyyy").format(DateTime.now())

结果如下:

08.10.2018

我对这个解决方案的问题是,虽然这种格式在欧盟可能是可以接受的;在例如美国(和许多其他国家)他们习惯于不同的日期格式,例如

10/08/2018

我的问题是:如何以用户当前语言环境的格式只返回日期(而不是时间)?

回答:
需要检索当前语言环境并将其传递给格式函数。我正在使用自定义本地化类,但使用开箱即用的解决方案,它看起来像这样:

DateFormat.yMMMd(Localizations.localeOf(context)).format(result);

最佳答案

我知道这已经得到解答,但如果有人想使用实际的设备语言环境而不是硬编码的语言环境:

DateFormat.yMMMd(Localizations.localeOf(context).languageCode).format(result);

重要的是,您需要在此处传递 String 而不是 Locale 对象。

如果您想要自定义日期格式,则需要根据您想要支持的所有语言环境创建自己的开关/案例。

https://stackoverflow.com/questions/52706297/

相关文章:

android - Flutter中如何解析json数据并显示在Listview中?

android - 即使应用程序关闭,也在后台运行 Dart 和 Flutter 中的定期任务

dart - 如何使用现有的应用程序 keystore 获取签名的 apk?

flutter - Flutter 中的约束布局等价物是什么?

android - Flutter - 多个手势,无需抬起手指

firebase - Flutter ListView 跳转到顶部

android - 在 Dismissible Widget 上禁用关闭方向

java - 在 Flutter 应用程序中使用 Java 或其他语言

flutter - Flutter Text 是否支持长字的换行?

dart - 如何使 Sink 格式化 Stream 的结果?